分析:

对于网格grid[i][j]如果放向上的管道,那么grid[i][k], k>j 就只能放向上的管道了。

那么定义dp[i][j]表示第i行,最后一个放向左的管道是j的最大总矿量。

j = 0表示全放向上,j = m表示全放向左。

如果grid[i][j]要往放向上的管道的话,前提是grid[i-1][j]也要是向上的管道。

因此转移为dp[i][j] = max(dp[i-1][k]+sumA(1,j)+sumB(j+1,n) ), k >= j

对于N= 500这样的规模,转移有点慢。

对于sumA,sumB可以处理前缀和,

对于max(dp[i-1][k]),利用max的传递性优化

递推 max(dp[i-1][k]) = max(max(dp[i-1][k-1]),dp[i-1][k])

复杂度O(n*m)

窝觉得如果不是在做动态规划的专题窝可能不会往这方面去想。

#include<bits/stdc++.h>
using namespace std; const int N = ;
int A[N][N], B[N][N];
int dp[N][N]; //#define LOCAL
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
int n,m;
while(scanf("%d%d",&n,&m),n){
for(int i = ; i <= n ;i++){
for(int j = ; j <= m; j++){
scanf("%d",A[i]+j);
A[i][j] += A[i][j-];
}
}
for(int i = ; i <= n ;i++){
for(int j = ; j <= m; j++){
scanf("%d",B[i]+j);
B[i][j] += B[i][j-];
}
}
for(int j = ; j <= m; j++){
dp[][j] = A[][j] + B[][m] - B[][j];
}
for(int i = ; i <= n; i++){
dp[i][] = dp[i-][];
for(int j = ; j <= m; j++){
dp[i][j] = max(dp[i][j-],dp[i-][j]);
}
for(int j = ; j <= n; j++){
dp[i][j] += A[i][j] + B[i][m] - B[i][j];
}
}
int ans = ;
for(int j = ; j <= m; j++){
ans = max(ans,dp[n][j]);
}
printf("%d\n",ans);
}
return ;
}

UVALive 3530 Martian Mining(贪心,dp)的更多相关文章

  1. UVaLive 3530 Martian Mining (简单DP)

    题意:给定一个n*m的网格,每个格子里有A矿和B矿数量,A必须由右向左运,B只能从下向上运,中间不能间断,问最大总数量. 析:一个简单DP,dp[i][j] 表示 从 (0, 0) 到 (i, j) ...

  2. POJ 2948 Martian Mining(DP)

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

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

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

  4. 递推DP UVA 1366 Martian Mining

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

  5. POJ 2948 Martian Mining

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

  6. UVA 1366 九 Martian Mining

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

  7. POJ 2498 Martian Mining

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

  8. 【BZOJ-3174】拯救小矮人 贪心 + DP

    3174: [Tjoi2013]拯救小矮人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 686  Solved: 357[Submit][Status ...

  9. BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP

    BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀 ...

随机推荐

  1. ios各个型号设备屏幕分辨率总结

    https://blog.csdn.net/amyloverice/article/details/79389357     iPhone: iPhone 1G 320x480 iPhone 3G 3 ...

  2. HDP3.1 中配置 YARN 的 timeline server 使用外部的 HBase

    HDP3.1 中的 YARN 的 timeline server 默认使用内置的 HBase,不知道为什么,总是过几天就挂掉,暂时还没找到原因.后来想着让它使用外部的 HBase 看看会不会还有此问题 ...

  3. 清北刷题冲刺 10-31 p.m

    数列 #include<iostream> #include<cstdio> using namespace std; long long a,b,ans; void f(lo ...

  4. 2017-10-17 NOIP模拟赛2

    a [问题描述]你是能看到第一题的 friends 呢.——hja何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为字符串定义了新的权值计算方法.一个字符串由小写字母组成,字符串的 ...

  5. ubuntu命令错误集

    1.在ubuntu命令行使用rz从windows传输文件时出现乱码 解决方法:使用 rz -e    选项进行传输,一般小文件传输不用加 -e 选项,大文件传输需要.

  6. Git Remote (转)

    基本使用 git是一个分布式代码管理工具,所以可以支持多个仓库,在git里,服务器上的仓库在本地称之为remote. 直接clone一个仓库: $: git clone git@search.ued. ...

  7. BestCoder Round #86 1001

    链接http://acm.hdu.edu.cn/showproblem.php?pid=5804 题意:给你一些商店和他的商品价格,然后给你一个记账本,问你记大了就是1,否则是0 解法:模拟,注意测试 ...

  8. Murano package

    Murano have 2 package types: HOT package with Heat template inside and MuranoPL package with MuranoP ...

  9. (四)Redis主从复制(单机版,不集群)

    持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可 ...

  10. 再谈Drupal 7.X的性能优化运行速度问题

    D6升级D7之后,性能着实让人头大,不妨参考下面文章,另外站内搜索DOOOOR里其他优化文章,中西医结合吧.其中CDN和BOOST效果还可以,其他的没试过. 1,服务器 Web服务器建议,推荐使用HA ...