题目传送门

 1 /*
 2     题意:抽象一点就是给两个矩阵,重叠的(就是两者选择其一),两种铺路:从右到左和从下到上,中途不能转弯,
 3         到达边界后把沿途路上的权值相加求和使最大
 4     DP:这是道递推题,首先我题目看了老半天,看懂后写出前缀和又不知道该如何定义状态好,写不出状态转移方程,太弱了。
 5          dp[i][j]表示以(i, j)为右下角时求得的最大值,状态转移方程:dp[i][j] = max (dp[i-1][j] + sum1[i][j], dp[i][j-1] + sum2[i][j]);   sum1表示列的前缀,sum2表示行的前缀
 6 */
 7 /************************************************
 8 * Author        :Running_Time
 9 * Created Time  :2015-8-9 10:18:37
10 * File Name     :UVA_1366.cpp
11  ************************************************/
12
13 #include <cstdio>
14 #include <algorithm>
15 #include <iostream>
16 #include <sstream>
17 #include <cstring>
18 #include <cmath>
19 #include <string>
20 #include <vector>
21 #include <queue>
22 #include <deque>
23 #include <stack>
24 #include <list>
25 #include <map>
26 #include <set>
27 #include <bitset>
28 #include <cstdlib>
29 #include <ctime>
30 using namespace std;
31
32 #define lson l, mid, rt << 1
33 #define rson mid + 1, r, rt << 1 | 1
34 typedef long long ll;
35 const int MAXN = 5e2 + 10;
36 const int INF = 0x3f3f3f3f;
37 const int MOD = 1e9 + 7;
38 int a[MAXN][MAXN], b[MAXN][MAXN];
39 int sum1[MAXN][MAXN], sum2[MAXN][MAXN];
40 int dp[MAXN][MAXN];
41
42 int main(void)    {     //UVA 1366 Martian Mining
43     int n, m;
44     while (scanf ("%d%d", &n, &m) == 2) {
45         if (!n && !m)   break;
46         memset (sum1, 0, sizeof (sum1));
47         for (int i=1; i<=n; ++i)    {
48             for (int j=1; j<=m; ++j)    {
49                 scanf ("%d", &a[i][j]); sum1[i][j] = sum1[i][j-1] + a[i][j];
50             }
51         }
52         memset (sum2, 0, sizeof (sum2));
53         for (int i=1; i<=n; ++i)    {
54             for (int j=1; j<=m; ++j)    {
55                 scanf ("%d", &b[i][j]); sum2[i][j] = sum2[i-1][j] + b[i][j];
56             }
57         }
58         memset (dp, 0, sizeof (dp));
59         for (int i=1; i<=n; ++i)    {
60             for (int j=1; j<=m; ++j)    {
61                 dp[i][j] = max (dp[i-1][j] + sum1[i][j], dp[i][j-1] + sum2[i][j]);
62             }
63         }
64         printf ("%d\n", dp[n][m]);
65     }
66
67     return 0;
68 }

转载于:https://www.cnblogs.com/Running-Time/p/4714801.html

递推DP UVA 1366 Martian Mining相关推荐

  1. uva 1366 - Martian Mining(dp)

    题目链接:uva 1366 - Martian Mining 题目大意:给出n和m,然后给出两种矿的分布,a种只能向上运输,b中只能向下运输,问说最多可以得到多少. 解题思路:dp[i][j]表示矩阵 ...

  2. UVa 1366 - Martian Mining (dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 给出n*m网格中每个格子的A矿和B矿数量,A矿必须由右向左运输,B矿必须由下向上运输 ...

  3. UVA - 1366 Martian Mining

    问题 https://vjudge.net/problem/UVA-1366 分析 递推DP,dp[i][j]表示右下角坐标[i,j]的矩形能够运出最多的矿物是多少 状态转移: dp[i][j]=ma ...

  4. UVA 1366 Martian Mining DP

    为了方便,记从右到左运输的为A矿,从下到上运输的为B矿. 首先,假如我们在第i行的前k格架了运输管道运输这K个格子的A矿,那么对于i下面的其他行最少都能架上k格管子,因为不架也是浪费,这一片区域的B矿 ...

  5. 递推DP UVA 590 Always on the run

    题目传送门 题意:题意难懂,就是一个小偷在m天内从城市1飞到城市n最小花费,输入的是每个城市飞到其他城市的航班. 分析:dp[i][j] 表示小偷第i天在城市j的最小花费.状态转移方程:dp[i][j ...

  6. 2019 ICPC Asia Nanjing Regional C.Digital Path(拓扑排序递推DP)

    整理的算法模板合集: ACM模板 题目传送门 三段题面,只有第三段是有用的-前两段又长单词又难懂,就是在讲故事...不过针对四种情况给出四个图帮助我们理解题意是真的赞,可能出题人怕我们看不懂吧(第一句 ...

  7. 解题报告:luogu P2272 [ZJOI2007]最大半连通子图(tarjan缩点、递推DP、hash、set判重)

    这时yxc上课时讲解的截图. 一般用到tarjan算法的题目步骤都非常相似: tarjan算法 缩点,建图(这里要判重) 按照拓扑序递推(这里缩点以后逆向就已经是拓扑序了)/ 循环遍历新图求解答案. ...

  8. hdu1978(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 分析: 递推DP. dp[][]表示可以到达改点的方法数. 刚开始: 外循环扫描所有点dp[x] ...

  9. 递推DP URAL 1119 Metro

    题目传送门 1 /* 2 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 3 递推DP:仿照JayYe,处理的很巧妙, ...

最新文章

  1. 反弹端口 HTTP代理 HTTP隧道技术
  2. Unity--------------------万向锁的概念
  3. tp5.0 根据经纬度 获取附近信息_php根据前端传递的经纬度获取区域地址信息
  4. 【华为云技术分享】用人工智能技术推动西安民俗文化,斗鱼超管团队有一套
  5. mysql效率索引_mysql下普通索引和唯一索引的效率对比
  6. 吴恩达《机器学习》第十四章:降维
  7. 使用Sigar做后台服务器管理时,遇到的linux上的问题
  8. HBase: 看上去很美
  9. linux jsp mysql_Linux JSP连接MySQL数据库
  10. php 过滤所有空格_php从文本中去除空格、特殊字符的4种情况
  11. 大漠找图算法_新手用大漠找图识别数字,怎么将数字组合起来呢
  12. photoshop照片尺寸
  13. devc语言图形编程教程_C语言编程工具:Dev - C++ 简单安装和使用!新手福利!
  14. 第二次打卡 数据处理
  15. h5 ios 切入后台运行倒计时问题
  16. 《激荡三十年》十八、青春飞扬——互联网的崛起
  17. 计算N阶行列式的详细讲解(C语言)(降阶法)(函数递归)
  18. 多测师肖sir_高级金牌讲师_项目的实战讲解
  19. ios备份应用数据_如何在iOS设备之间备份和复制数据
  20. 9.9 优美三角剖分 2718

热门文章

  1. 对DBF的操作建议用微软的驱动和新的链接字符串。
  2. 使用ffmpeg实现转码样例(代码实现)
  3. codeforces 450B. Jzzhu and Sequences 解题报告
  4. ALV显示红绿灯(FMnbsp;ALVnbsp;和nbsp;OOnbsp;ALV两…
  5. php5.3的新特性
  6. onmousewheel
  7. 基于 REST 的 Web 服务:基础
  8. 处理过拟合问题-Regularization
  9. AI领域内,敢和BAT决斗的创业公司都在这了!
  10. 废弃电器电子产品回收:需要的不仅是补贴 !