[c]sdnuoj1032 二维的dp
来源:互联网 发布:iphone连不上蜂窝数据 编辑:程序博客网 时间:2024/06/06 07:29
http://www.acmicpc.sdnu.edu.cn/problem/show/1032
题目标题:机器人
题目大意:给出一个二维数组,从左上角做两条到右下角的路,这两条路不能交叉,求最大值。
一条路的解法很简单,就是做一个二维数组dp,两条路的也就是做个四维数组了,要注意交叉时的情况,但这种解法一定不是最简单的方法,更高端的解法目前我还不会。。
#include<iostream>#include<stdio.h>using namespace std;int max(int a,int b,int c,int d){if(a>=b && a>=c && a>=d) return a;else if(b>=c && b>=d) return b;else if(c>=d) return c;else return d;}int re[52][52][52][52]={0};int main(){int a[52][52];int n,m;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){for(int k=1;k<=n;k++){for(int l=1;l<=m;l++){re[i][j][k][l]=max(re[i-1][j][k-1][l],re[i][j-1][k-1][l],re[i-1][j][k][l-1],re[i][j-1][k][l-1])+a[i][j]+a[k][l];if(i==k && j==l) re[i][j][k][l]-=a[i][j];}}}}cout<<re[n][m][n][m];return 0;}
0 0
- [c]sdnuoj1032 二维的dp
- sdnuoj1032 机器人
- 二维dp
- 二维DP的最优子结构问题
- 【NOIp 2014】【二维dp】飞扬的小鸟
- HDOJ1176 免费馅饼 简单的二维DP
- 2014年上海邀请赛C Seam Carving(二维dp)
- Codeforces 597C Subsequences【Dp+二维树状数组】
- C语言的二维数组
- 【C++】二维数组的初始化
- C/C++--定义二维数组及二维数组的传递
- C/C++二维数组的参数传递与二维指针
- dp day3/4-二维dp
- HDOJ FATE 二维DP
- hdu2854 Beans 二维dp
- 二维DP 建房子
- poj 3257 二维dp
- poj-3661-二维dp
- iOS Objective-C @property属性的用法
- poj 3009 Curling 2.0
- UIResponder
- 记阿里电话面试-研发工程师(JAVA)
- BZOJ1015
- [c]sdnuoj1032 二维的dp
- hdu 5313 Bipartite Graph(二分图染色+dp+bitset优化)
- 计算几何学习笔记
- NoSql——mongoDB(副本集)
- USACO——The Castle
- 为什么delegate属性使用assigne而不是retain?
- 【Matlab学习笔记】【函数学习】size参数
- Android中通过GPS或NetWork获取当前位置的经纬度
- HDU 1671 Phone List (Trie·数组实现)