一个row*col的矩阵,每一个格子内有两种矿yeyenum和bloggium,而且知道它们在每一个格子内的数量是多少。最北边有bloggium的收集站,最西边有 yeyenum 的收集站。如今要在这些格子上面安装向北或者向西的传送带(每一个格子自能装一种)。问最多能採到多少矿。

DP,状态转移方程为

dp[i][j]=Max(dp[i][j-1]+suma[i][j],dp[i-1][j]+sumb[i][j]);

当中sumb[i][j]是第i行1到j列的须要到西边的矿石的价值,suma[i][j]是第j列1到i行须要到最北边的矿石的价值

#include "stdio.h"
#include "string.h"
int dp[510][510],suma[510][510],sumb[510][510],a[510][510],b[510][510];
int Max(int a,int b )
{
if (a<b) return b;else return a;
}
int main()
{
int n,m,i,j; while (scanf("%d%d",&n,&m)!=EOF)
{
if (n+m==0)break;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%d",&b[i][j]); for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%d",&a[i][j]); memset(suma,0,sizeof(suma));
memset(sumb,0,sizeof(sumb)); for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
suma[i][j]=suma[i-1][j]+a[i][j];
for (j=1;j<=m;j++)
for (i=1;i<=n;i++)
sumb[i][j]=sumb[i][j-1]+b[i][j]; memset(dp,0,sizeof(dp)); for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
dp[i][j]=Max(dp[i][j-1]+suma[i][j],dp[i-1][j]+sumb[i][j]); }
printf("%d\n",dp[n][m]); }
return 0;
}

POJ 2948 DP的更多相关文章

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

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

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

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

  3. POJ 2948 Martian Mining(DP)

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

  4. poj 2948 Martian Mining (dp)

    题目链接 完全自己想的,做了3个小时,刚开始一点思路没有,硬想了这么长时间,想了一个思路, 又修改了一下,提交本来没抱多大希望 居然1A了,感觉好激动..很高兴dp又有所长进. 题意: 一个row*c ...

  5. hdu 1513 && 1159 poj Palindrome (dp, 滚动数组, LCS)

    题目 以前做过的一道题, 今天又加了一种方法 整理了一下..... 题意:给出一个字符串,问要将这个字符串变成回文串要添加最少几个字符. 方法一: 将该字符串与其反转求一次LCS,然后所求就是n减去 ...

  6. poj 1080 dp如同LCS问题

    题目链接:http://poj.org/problem?id=1080 #include<cstdio> #include<cstring> #include<algor ...

  7. poj 1609 dp

    题目链接:http://poj.org/problem?id=1609 #include <cstdio> #include <cstring> #include <io ...

  8. POJ 1037 DP

    题目链接: http://poj.org/problem?id=1037 分析: 很有分量的一道DP题!!! (参考于:http://blog.csdn.net/sj13051180/article/ ...

  9. Jury Compromise POJ - 1015 dp (标答有误)背包思想

    题意:从 n个人里面找到m个人  每个人有两个值  d   p     满足在abs(sum(d)-sum(p)) 最小的前提下sum(d)+sum(p)最大 思路:dp[i][j]  i个人中  和 ...

随机推荐

  1. KaOS 2016.04 发布,桌面 Linux 发行版

    KaOS 2016.04 发布了,KaOS是一份桌面Linux发行,其特色在于最新版本的KDE桌面环境及其他流行的使用Qt工具包的软件程序.它最初基于Arch Linux,但从2013年四月起,开发者 ...

  2. 如何将内存中的位图数据绘制在DC上

    假如你定义了一个位图类,里面包含位图头,位图信息头,调色板,位图数据.然后你按照位图的格式将位图文件读入你的类中,现在你知道了位图的全部信息了.主要信息包含在位图信息头里面,数据则在位图数据缓冲里面. ...

  3. [转载]关于网传JDK1.7语法层次支持集合的问题

    以  JDK1.7新特性 为关键词进行百度的话,总能发现这样的描述,说: 从语法层面上支持集合,不再是数组的专利.还有这样的例子: final List<Integer> piDigits ...

  4. 14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 回收空间使用TRUNCATE TABLE

    14.10.5 Reclaiming Disk Space with TRUNCATE TABLE 回收空间使用TRUNCATE TABLE 回收操作系统磁盘空间当truncate 一个InnoDB ...

  5. 14.10.3 InnoDB Checkpoints InnoDB 检查点:

    14.10.3 InnoDB Checkpoints InnoDB 检查点: 你的log files 变的很大可能会降低磁盘性能在checkpointing的时候, 它通常设置设置log files总 ...

  6. 浅谈数据库技术,磁盘冗余阵列,IP分配,ECC内存,ADO,DAO,JDBC

    整理-----数据库技术,磁盘冗余阵列,IP分配, ECC内存,ADO, DAO,JDBC 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发.发布和支持.My ...

  7. Python写入文件,但是发现文件为空,竟然未写入!

    问题描述: fw=open(r'C:\test.txt','w') s="Hello World!" fw.write(s) ========== 此时查看C盘根目录,发现test ...

  8. S3C6410 纯粹的裸机启动,自己写的SD BOOT启动

    这几天晚上一直折腾S3C6410的裸机SD卡启动,不大想使用UBOOT,我是搞硬件的,对底层非常感兴趣,不喜欢已经写好的,因此自己一直在尝试,其实很早之前就试过SD卡启动,也就是ARM11上电后会把S ...

  9. WM_PAINT与WM_ERASEBKGND(用户操作和API这两种情况产生消息的顺序有所不同)

    1)当WM_PAINT不是由InvalidateRect产生时,即由最大化,最小化等产生时,或者移动产生(移动有时只会产生WM_ERASEBKGND消息)系统先发送WM_ERASEBKGND消息,再发 ...

  10. Xamarin.forms 自定义dropdownview控件

    一 基本说明 想用xamarin做个像美团这样的下拉列表进行条件选择的功能,但是但是找了半天好像没有现成的,也没有其他类似的控件可以走走捷径,再则也没有找到popwindow之类的东东,这里只好使用s ...