您的位置:首页 > 其它

usaco 1.5 numtri...超时的搜索...

2012-10-25 20:31 295 查看
/*
ID:chenjiong
PROG:numtri
LANG:C++
*/

#include <stdio.h>
#include <string.h>

const int MAXN = 1005;

int N;
int mat[MAXN][MAXN];
int cnt;
int sum;
int max = 0;

void dfs(int x,int y)
{
if ( x == N )
{
if ( sum > max )
max = sum;
return;
}

sum += mat[x + 1][y];
dfs(x + 1,y);
sum -= mat[x + 1][y];

sum += mat[x + 1][y + 1];
dfs(x + 1,y + 1);
sum -= mat[x + 1][y + 1];

}

int main()
{
freopen("numtri.in","r",stdin);
freopen("numtri.out","w",stdout);

int i,j;
scanf("%d",&N);
for ( i = 0; i < N; i++)
for ( j = 0; j <= i; j++)
scanf("%d",&mat[i][j]);

sum = mat[0][0];
dfs(0,0);

printf("%d\n",max);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: