矩阵取数问题,51nod1084,多路dp
来源:互联网 发布:怎么修改淘宝评价手机 编辑:程序博客网 时间:2024/05/16 07:44
51nod1084,
两路dp,两次从(1, 1)走到(n, m),拾取路上的珍珠。
dp[k][i][j] 表示第k步时,一个人在i列,一个人在j列,i + j = k (m + n >= k >= 2)。我一般都会将输入和处理分开来,下面的solve()函数用于处理数据
#include <iostream>#include <cstdio>#include <queue>#include <stack>#include <string>#include <cstring>#include <map>#include <set> #include <algorithm>#include <cstdlib>#include <cmath>using namespace std;#define MAX(a,b,c,d) max(max(a,b),max(c,d))const int maxn = 200 + 7;int pic[maxn][maxn];int dp[maxn << 1][maxn][maxn];void solve(int n, int m, int pic[][maxn]){//多路dp memset(dp, 0, sizeof dp);for (int k = 2; k <= n + m; k++)for (int i = 1; i <= n && k - i > 0; i++) //k是两路列数和 for (int j = 1; j <= n && k - j > 0; j++)dp[k][i][j] =MAX(dp[k - 1][i][j], //下下 dp[k - 1][i - 1][j - 1], //右右 dp[k - 1][i - 1][j], //右下 dp[k - 1][i][j - 1]) //下右 + pic[i][k - i] + (i == j ? 0 : pic[j][k - j]);}int main(){ios::sync_with_stdio(false);int m, n;//n行,m列while(cin >> m >> n) {for (int i = 1; i <=n; ++i) {for (int j = 1; j <= m; ++j) {cin >> pic[i][j];}}solve(n, m, pic);cout << dp[m +n][n][n] << endl;}return 0;}
0 0
- 矩阵取数问题,51nod1084,多路dp
- 51nod1084 更难难得矩阵取数问题
- dp 矩阵取数问题
- 矩阵取数问题 DP
- dp--矩阵取数问题
- 51nod 1038 矩阵取数问题 (DP)
- 51Nod 1083 矩阵取数问题(简单DP)
- 51nod 1084+1083 矩阵取数问题 dp
- 51nod 1084 矩阵取数问题 V2(dp)
- 【51Nod】1083 - 矩阵取数问题(dp)
- 【51Nod】-1083 矩阵取数问题(DP)
- 51Nod 1083 矩阵取数问题 (DP)
- 51nod 1084 矩阵取数问题 V2 dp
- 51nod 1083 矩阵取数问题(基础dp)
- 51nod 1084 矩阵取数问题 V2(dp)
- 51Nod-1083 矩阵取数问题【DP】
- 51Nod 1083 矩阵取数问题(基础DP)
- 【简单DP】矩阵取数问题
- 服务器,并发,“事件驱动”的本质
- SpringBoot -- Kafka(一) 环境搭建
- (one day one problem) codeforces 468/problem/B Two Sets (并查集)
- 图片局部放大原生js,html代码
- MongoDB 常用命令
- 矩阵取数问题,51nod1084,多路dp
- 关于华为手机打印log不全问题
- 新的开始
- 一集合指定元素组合的条件,求出集合中有多少对组合,集合的元素不重复使用。
- 用户级线程同步互斥对象和内核级线程同步对象
- 显示具体年份
- 获取系统时间
- react-native run-android时遇到 app dexDebug……finished with non-zero exit value 2
- WebView_返回键返回到上一个HTML界面不回到源生界面的方法