您的位置:首页 > 其它

poj1163 The Triangle

2012-08-04 18:04 288 查看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
int n;
int d[100][100];
int map[100][100];
void dp(int i,int j)
{
if(i==n-1)
{
d[i][j]=0;
return;
}
if(d[i+1][j]==-1)
{
dp(i+1,j);
}
if(d[i+1][j+1]==-1)
{
dp(i+1,j+1);
}
d[i][j]=0;
if(d[i][j]==-1||d[i][j]<d[i+1][j]+map[i+1][j])
{
d[i][j]=d[i+1][j]+map[i+1][j];
}
if(d[i][j]==-1||d[i][j]<d[i+1][j+1]+map[i+1][j+1])
{
d[i][j]=d[i+1][j+1]+map[i+1][j+1];
}
}
int main()
{
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
scanf("%d",&map[i][j]);
d[i][j]=-1;
}
}
dp(0,0);
printf("%d\n",d[0][0]+map[0][0]);
return 0;
}


//200K 0MS
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: