LightOJ - 1004 Monkey Banana Problem(DP)
来源:互联网 发布:mac协议 编辑:程序博客网 时间:2024/05/17 04:38
题目大意:给你N个格子,每个格子有相应的数字,现在要求你从最上面往下走,走到最下面。每次只能往左下或者右下走
问最后走到的格子的数的总和的最大值
解题思路:用dp[i][j]表示走到第i行第j列得到的最大和
因为规则,所以转移方程为dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]) + val[i][j]
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 210;const int INF = 0x3f3f3f3f;int num[N][N];int dp[N][N];int n, cas = 1;void solve () { scanf("%d", &n); scanf("%d", &num[1][1]); dp[1][1] = num[1][1]; for (int i = 2; i <= n; i++) for (int j = 1; j <= i; j++) { scanf("%d", &num[i][j]); dp[i][j] = dp[i - 1][j] + num[i][j]; if (j - 1 >= 1) dp[i][j] = max(dp[i][j], dp[i - 1][j - 1] + num[i][j]); } for (int i = n + 1; i < 2 * n; i++) for (int j = 1; j <= 2 * n - i; j++) { scanf("%d", &num[i][j]); dp[i][j] = max(dp[i - 1][j], dp[i - 1][j + 1]) + num[i][j]; } printf("Case %d: %d\n", cas++, dp[2 * n - 1][1]);}int main() { int test; scanf("%d", &test); while (test--) solve(); return 0;}
0 0
- LightOJ 1004 - Monkey Banana Problem 【DP】
- LightOJ 1004 - Monkey Banana Problem (dp)
- LightOJ - 1004 Monkey Banana Problem(DP)
- LightOJ 1004 - Monkey Banana Problem(dp)
- lightoj 1004 - Monkey Banana Problem 【dp】
- LightOJ-1004-Monkey Banana Problem [DP]
- LightOJ 1004 - Monkey Banana Problem
- lightoj 1004 - Monkey Banana Problem
- LightOJ 1004 Monkey Banana Problem
- LightOJ 1004 - Monkey Banana Problem
- lightOJ 1004 - Monkey Banana Problem
- lightoj 1004 - Monkey Banana Problem
- LightOJ 1004 Monkey Banana Problem
- LightOJ 1004 Monkey Banana Problem (线性dp 数字菱形)
- LightOJ 1004 Monkey Banana Problem (DP 数字三角形)
- 1004 - Monkey Banana Problem (dp)
- LightOJ 1004 Monkey Banana Problem 动态规划
- 【DP】 Light OJ 1004 Monkey Banana Problem
- cocos3.x版本下载
- 黑马程序员——Java基础(十二)之网络编程
- python学习笔记(六)切片
- NSFileManager
- 如何在mac上搭建GitHub
- LightOJ - 1004 Monkey Banana Problem(DP)
- python学习笔记(七)迭代
- 5.变址寄存器-ESI和EDI寄存器与其用途
- SQL语句优化技术分析
- disk management
- LoadRunner参数化详解
- 怎么修改button切换选中状态的时候背景出现一个小蓝点的问题
- spark小事记
- HDU4607(最大直径 树DP)