CF B. Working out dp 递推
来源:互联网 发布:劳动法律师事务所知乎 编辑:程序博客网 时间:2024/05/16 01:40
CF dp 递推
题意:
给出nxm个数字矩阵,求出从左上角到右下角的最大权值和,权值就是数字,求出从左下到右上的最大权值和,当然两条路只能交叉一个位置,并且此位置上的权值不能算入和。求出两条路的最大权值和。
思路:
- 注意边界不能作为交叉位置。
终极思想是枚举相叉位置,知道位置之后只需求出每一条路是怎么走的就行,很容易得出只有两种走法,别想太多,试试就知道。那么四种走法dp求出既可。
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int maxn = 1005;int dp[maxn][maxn][4];int a[maxn][maxn];int main(){// freopen("in.txt","r",stdin); int n,m; scanf("%d%d",&n,&m); for(int i = 1;i <= n; i++) { for(int j = 1;j <= m; j++) { scanf("%d",&a[i][j]); } } for(int i = 1;i <= n; i++) { for(int j = 1;j <= m; j++) { dp[i][j][0] = a[i][j] + max(dp[i][j-1][0],dp[i-1][j][0]); } } for(int i = n;i >= 1; i--) { for(int j = m;j >= 1; j--) { dp[i][j][1] = a[i][j] + max(dp[i+1][j][1],dp[i][j+1][1]); } } for(int i = n;i >= 1; i--) { for(int j = 1;j <= m; j++) { dp[i][j][2] = a[i][j] + max(dp[i+1][j][2],dp[i][j-1][2]); } } for(int i = 1;i <= n; i++) { for(int j = m;j >= 1; j--) { dp[i][j][3] = a[i][j] + max(dp[i-1][j][3],dp[i][j+1][3]); } } int ans = 0; for(int i = 2;i < n; i++) { for(int j = 2;j < m; j++) { ans = max(ans,dp[i-1][j][0]+dp[i+1][j][1]+dp[i][j-1][2]+dp[i][j+1][3]); ans = max(ans,dp[i][j-1][0]+dp[i][j+1][1]+dp[i+1][j][2]+dp[i-1][j][3]); } } printf("%d\n",ans); return 0;}
阅读全文
0 0
- CF B. Working out dp 递推
- 简单dp之递推(1)--CF 429B B.Working out
- B. Working out (递推dp )
- cf 429B Working out dp
- CF 429B. Working out DP
- CodeForces 429B Working out // 递推dp
- CodeForces 429B Working out【递推dp】
- CodeForces 429B Working out 递推
- B. Working out----暴力dp
- Codeforce 429B Working out(递推)
- [dp] Codeforces 429B B. Working out
- codeforces 429B B. Working out(dp)
- dp Codeforces 429B B. Working out
- Codeforces 429B B. Working out dp
- CF 429B B.Working out 四个角递推
- Codeforces 429B - Working out (DP)
- Codeforces#245- B. Working out-DP
- CodeForces - 429B Working out(dp)
- CodeForces
- 把普通应用打包成系统应用
- Out-out-control cars
- Hibernate面试题详解
- 添加 删除 修改表单
- CF B. Working out dp 递推
- 28、数据结构笔记之二十八数组之矩阵
- zoj-2110-Tempter of the Bone-DFS-剪枝-java
- swift学习记录(1)两种textfield隐藏键盘的方法
- springCloud(八)
- 洛谷P1445(数学+画柿子+线性筛)
- JZOJ 5377. 【NOIP2017提高A组模拟9.19】开拓
- 总线基础--USB
- hdu 6208 hash字符串水题