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\n", dp[1][1]); return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步