最简单的dp了,创了做题的时间记录的,纪念下~~~从读题到AC,just 10mins。 #include<cstdio> #include<iostream> using namespace std; int dp[101][101]; int max( int a, int b ) { return a>b ? a : b; } int main() { memset(dp,0,sizeof(dp)); int n; scanf("%d",&n); int i,j; for(i=0; i<n; i++) { for(j=0; j<=i; j++) { scanf("%d",&dp[i][j]); } } for(i=n-2; i>=0; i--) { for(j=0; j<=i; j++) { dp[i][j] = max( dp[i+1][j], dp[i+1][j+1] ) + dp[i][j]; } } printf("%d/n",dp[0][0]); return 0; }