您的位置:首页 > 其它

Poj 1163 The Triangle

2012-01-18 23:03 375 查看
简单dp,貌似题目和3176是一样的。

#include <stdio.h>
int data[360][360];
int dp[360][360];
int n;
int main()
{
int i,j,k,maxn;

scanf("%d",&n);
for (i=0;i<n;i++) {
for (j=0;j<=i;j++) {
scanf("%d",&data[i][j]);
}
}
dp[0][0]=data[0][0];
for (i=1;i<n;i++) {
for (j=0;j<=i;j++) {
if (j-1>=0&&i!=j) {
if (dp[i-1][j-1]>dp[i-1][j])
dp[i][j]=dp[i-1][j-1]+data[i][j];
else
dp[i][j]=dp[i-1][j]+data[i][j];
}
else if (j-1>=0)
dp[i][j]=dp[i-1][j-1]+data[i][j];
else
dp[i][j]=dp[i-1][j]+data[i][j];
}
}
maxn=dp[n-1][0];
for (i=0;i<n;i++) {
if (dp[n-1][i]>maxn)
maxn=dp[n-1][i];
}
printf("%d\n",maxn);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: