http://poj.org/problem?id=3176
题意:
如图所示,呈三角形的往上递推,问你在这过程中最大的和可能是多少?
简单dp

#include <iostream> #include <cstdio> #include <stdio.h> #include <string.h> using namespace std; #define maxn 400 int dp[maxn][maxn]; int n; int main() { int num; scanf("%d", &n); memset(dp, 0, sizeof(dp)); for(int i=1; i<=n; i++) { for(int j=1; j<=i; j++) { scanf("%d", &num); dp[i][j] = num; } } for(int i=n; i>=1; i--) { for(int j=1; j<=i; j++) { dp[i][j] += max(dp[i+1][j], dp[i+1][j+1]); } } printf("%d ", dp[1][1]); return 0; }