HRBUST 1214取方格(DP)
来源:互联网 发布:win7软件图标模糊 编辑:程序博客网 时间:2024/06/05 20:29
题目传送门
思路
题目要求两次取得数字的和最大,那么我们可以让两个人同时出发然后取得的和最大。
用DP(i,j,k)表示两个人所拿的最大的和,i表示走的步数,j表示第一个人向右走的步数,k表示第二个人向右走的步数,通过步数就可以计算得到两个人的位置。
动态转移:
DP(i,j,k) = max{ dp[i-1][j][k] , dp[i-1][j-1][k] , dp[i-1][j][k-1] , dp[i-1][j-1][k-1] } + a[i-j+1][j+1]+a[i-k+1][k+1];
不要忘了两个人在同一位置的时候只能取一次,要特别判断下
代码
#include<bits/stdc++.h>using namespace std;int max(int a,int b,int c,int d){ if (b>a) a = b; if (c>a) a = c; if(d>a) return d; else return a;}int main(){ int n; int a[30][30]; int dp[100][35][35]; while(cin >> n) { memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); int x,y,val; while(cin >> x >> y >> val && (x||y||val) ) { a[x][y] = val; } dp[0][0][0] = a[1][1];//初始状态 for (int i = 1; i <= n*2; i++) { for (int j = 0 ; j <= min(n,i); j++) { if (i-j>n) continue; for (int k = 0; k <= min(n,i); k++) { if (i-k>n) continue; if (j==0&&k==0) dp[i][j][k] = dp[i-1][j][k]+a[i+1][1]; else if(j==0) dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j][k-1])+a[i+1][1]+a[i-k+1][k+1]; else if(k==0) dp[i][j][k] = max(dp[i-1][j-1][k],dp[i-1][j][k])+a[i+1][1]+a[i-j+1][j+1]; else{ dp[i][j][k] = max(dp[i-1][j-1][k-1],dp[i-1][j-1][k], dp[i-1][j][k-1] ,dp[i-1][j][k] )+a[i-j+1][j+1]+a[i-k+1][k+1]; if (j==k) dp[i][j][k] -= a[i-j+1][j+1]; } } } printf("%d\n",dp[n*2][n][n]); } return 0;}
阅读全文
0 0
- HRBUST 1214取方格(DP)
- Hrbust 1214 方格取数 (双线程dp)
- hrbust 1843 方格取数【状压dp】
- hrbust 1214 哈理工oj 1214 方格取数【BFS广搜+dp】
- hebust 1214 方格取数 (多进程dp)
- 蓝桥杯 方格取数 (多线程DP)
- codevs 1043 方格取数 (DP)
- noip2000 方格取数(多重DP)
- 命运 (DP方格取数)
- [luogu1004]方格取数(dp,亚瑟)
- 方格取数(1) (状态dp)
- [DP]方格取数
- 方格取数 双线DP
- 【DP】[NOIP2000]方格取数
- OpenJudge_P8786 方格取数(DP)
- hrbusr 1214&PID314 / [NOIP2000]方格取数 [多线程DP]
- HDU1565方格取数(1)(状态压缩DP)
- hdu 1565 方格取数(1)(状态压缩DP)
- RxEasyHttp一款基于RxJava2+Retrofit2实现简单易用的网络请求框架
- 毕业那年
- Linux学习笔记之系统简介
- 公约数和公倍数
- Android入门之RecyclerView
- HRBUST 1214取方格(DP)
- NumPy-快速处理数据
- Ajax的使用以及跨域(上)
- Add to List 257. Binary Tree Paths
- script中获取input节点
- Editor_EditorPrefs,EditorUtility学习05
- 版本控制:git提交代码
- xib storyBoard IBOutlet连出来的视图属性为什么可以被设置成weak
- response