lightoj 1036 - A Refining Company
来源:互联网 发布:黑马程序员视频百度云 编辑:程序博客网 时间:2024/05/18 01:40
挺好的一个题目,要注意解题时满足一个性质, 即若一个格子选了往左, 则该格子左侧的格子都往左, 同理一个格子若选择了往上, 所有上面的格子都选择往上
想来想去, 采用递推似乎不好进行, 这里用记忆化搜索
#include <cstdio>#include <algorithm>using namespace std;int ura[510][510], rad[510][510];int row[510][510], col[510][510];int dp[510][510];int n, m;void init(){ for(int i=1; i<=n; i++) row[i][1] = ura[i][1]; for(int i=1; i<=n; i++) for(int j=2; j<=m; j++) row[i][j] = row[i][j-1] + ura[i][j]; for(int i=1; i<=m; i++) col[i][1] = rad[1][i]; for(int i=1; i<=m; i++) for(int j=2; j<=n; j++) col[i][j] = col[i][j-1] + rad[j][i]; for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) dp[i][j] = -1;}int find(int i, int j){ if(dp[i][j] > 0) return dp[i][j]; if(i==1 && j==1) return dp[i][j] = max(rad[i][j], ura[i][j]); if(i == 1) return dp[i][j] = max(row[i][j], find(i, j-1)+rad[i][j]); if(j == 1) return dp[i][j] = max(col[1][i], find(i-1, j)+ura[i][j]); return dp[i][j] = max(find(i-1, j)+row[i][j], find(i, j-1)+col[j][i]);}int main(){ int t, ca = 1; scanf("%d", &t); while(t--) { scanf("%d %d", &n, &m); for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) scanf("%d", &ura[i][j]); for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) scanf("%d", &rad[i][j]); init(); printf("Case %d: %d\n", ca++, find(n, m)); } return 0;}
- lightoj 1036 - A Refining Company
- lightoj 1036 - A Refining Company (dp)
- LightOJ 1036 - A Refining Company(dp)
- LightOJ 1036 - A Refining Company(dp)
- LightOJ 1036 - A Refining Company(DP)
- lightoj 1036 - A Refining Company DP
- lightoj - 1036 - A Refining Company / dp
- A - A Refining Company
- Light OJ 1036A Refining Company (DP)
- Light OJ 1036A Refining Company
- A Refining Company
- LightOJ - 1039 A Toy Company(BFS)
- Software Company LightOJ
- A company prd
- LightOJ 1221 - Travel Company(SPFA判负环)
- LightOj 1221 - Travel Company(spfa判负环)
- LightOJ - 1180 Software Company(二分+dp)
- LightOJ - 1221 Travel Company(负环)
- HTML5游戏开发进阶指南
- linux物理地址和虚拟地
- 简单解释一下这5条指令:
- struts dwr配置
- IIS上传漏洞
- lightoj 1036 - A Refining Company
- EHCache 实现通用类 CacheManager
- WIKIOI 1213 解的个数 题解与分析
- 系统的零点、极点物理含义
- 程序员面试100题---3.求子数组的最大和
- 高级SQL优化
- 从mina中学习超时程序编写
- objdump - display information from object files
- maven建立集中预测项目