题目链接

完全自己想的,做了3个小时,刚开始一点思路没有,硬想了这么长时间,想了一个思路,

又修改了一下,提交本来没抱多大希望 居然1A了,感觉好激动。。很高兴dp又有所长进。

题意: 一个row*col的矩阵,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个

格子内的数量是多少。最北边有bloggium的收集站,最西边有 yeyenum 的收集站。

现在要在这些格子上面安装向北或者向西的传送带(每个格子自能装一种)。问最多能采到多少矿。

传送带只能直着走,不可弯曲,不能交叉。

分析:做题的时候一直在想状态转移 之间的关系,后来发现应该从左上角开始看起,每一个非零值的

格子,都要有一个传送的方向,因为是从上往下,从左往右的,所以前面的已经计算过了,所以方程

为d[i][j] = max(d[i-1][j]+ye[i][j], d[i][j-1]+bl[i][j]);

ye[i][j]表示从i行0列 到 i行j列的ye值, bl类似。

样例解释:

^     ^
< < < ^
< < < ^
< < < ^
 #include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#define LL long long
using namespace std;
const int maxn = + ;
int n, m, d[maxn][maxn], ye[maxn][maxn], bl[maxn][maxn]; int main()
{
int i, j, a;
while(~scanf("%d%d", &n, &m))
{
if(n== && m==) break;
memset(d, , sizeof(d));
memset(ye, , sizeof(ye));
memset(bl, , sizeof(bl));
for(i = ; i <= n; i++)
for(j = ; j <= m; j++)
{
scanf("%d", &a);
ye[i][j] = ye[i][j-] + a;
}
for(i = ; i <= n; i++)
for(j = ; j <= m; j++)
{
scanf("%d", &a);
bl[i][j] = bl[i-][j] + a;
}
for(i = ; i <= n; i++)
for(j = ; j <= m; j++)
d[i][j] = max(d[i-][j]+ye[i][j], d[i][j-]+bl[i][j]); printf("%d\n", d[n][m]);
}
return ;
}

poj 2948 Martian Mining (dp)的更多相关文章

  1. POJ 2948 Martian Mining(DP)这是POJ第200道,居然没发现

    题目链接 两种矿石,Y和B,Y只能从从右到左,B是从下到上,每个空格只能是上下或者左右,具体看图.求左端+上端最大值. 很容易发现如果想最优,分界线一定是不下降的,分界线上面全是往上,分界线下面都是往 ...

  2. POJ 2948 Martian Mining

    Martian Mining Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2251 Accepted: 1367 Descri ...

  3. (中等) POJ 2948 Martian Mining,DP。

    Description The NASA Space Center, Houston, is less than 200 miles from San Antonio, Texas (the site ...

  4. POJ 2948 Martian Mining(DP)

    题目链接 题意 : n×m的矩阵,每个格子中有两种矿石,第一种矿石的的收集站在最北,第二种矿石的收集站在最西,需要在格子上安装南向北的或东向西的传送带,但是每个格子中只能装一种传送带,求最多能采多少矿 ...

  5. POJ 2498 Martian Mining

    Martian Mining Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 2194   Accepted: 1326 De ...

  6. UVa 1366 - Martian Mining (dp)

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

  7. 递推DP UVA 1366 Martian Mining

    题目传送门 /* 题意:抽象一点就是给两个矩阵,重叠的(就是两者选择其一),两种铺路:从右到左和从下到上,中途不能转弯, 到达边界后把沿途路上的权值相加求和使最大 DP:这是道递推题,首先我题目看了老 ...

  8. UVA 1366 九 Martian Mining

    Martian Mining Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Sta ...

  9. POJ.3624 Charm Bracelet(DP 01背包)

    POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...

随机推荐

  1. S.O.L.I.D五大原则- 深入了解javascript

    /* S.O.L.I.D五大原则 1. 单一原则 2. 开闭原则 3. 里氏替换原则 4. 接口分离原则 5. 依赖反转原则 */ /*单一原则:类发生更改的原因只有一个 如何知道一个对象的多个行为构 ...

  2. Wmware桥接网络虚拟机无法上网的问题

    之前装好的一个虚拟机,安装到本地的Wmware workstation的时候,发现无法上网. 虚拟机使用的是桥接模式:一开始怀疑IP被占用,修改后发现不起作用.    排查所有的网络配置,发现都没有问 ...

  3. 使用SpringMVC+mybatis+事务控制+JSON 配置最简单WEB

    最近在总结一些项目的基础知识,根据公司最近的一些意向和技术路线,初步整理了一个简单的配置例子     1.使用springmvc代替strutsMVC     2.使用请求json数据串的方式代替传统 ...

  4. ajax与jsonp的区别

    ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本.

  5. 2012 Asia Hangzhou Regional Contest

    Friend Chains http://acm.hdu.edu.cn/showproblem.php?pid=4460 图的最远两点距离,任意选个点bfs,如果有不能到的点直接-1.然后对于所有距离 ...

  6. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  7. jstl表达式使用方法

    1.jstl.jar  servlet.jar支持 2.jsp引入标签库 <%@ taglib prefix="c" uri="http://java.sun.co ...

  8. hdu 1596 find the safest road(最短路,模版题)

    题目 这是用Dijsktra做的,稍加改动就好,1000ms..好水.. #define _CRT_SECURE_NO_WARNINGS #include<string.h> #inclu ...

  9. *[codility]MinAvgTwoSlice

    https://codility.com/demo/take-sample-test/min_avg_two_slice 此题要求一个数组子段的最小的平均数(返回第一个数字的index).刚开始想记录 ...

  10. HTML5 增强的页面元素

    一.HTML5 改良的 input 元素的种类 1.<input type="number" id="num1"> var n1 = documen ...