UVALive 3530 Martian Mining(贪心,dp)
分析:
对于网格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)的更多相关文章
- UVaLive 3530 Martian Mining (简单DP)
题意:给定一个n*m的网格,每个格子里有A矿和B矿数量,A必须由右向左运,B只能从下向上运,中间不能间断,问最大总数量. 析:一个简单DP,dp[i][j] 表示 从 (0, 0) 到 (i, j) ...
- POJ 2948 Martian Mining(DP)
题目链接 题意 : n×m的矩阵,每个格子中有两种矿石,第一种矿石的的收集站在最北,第二种矿石的收集站在最西,需要在格子上安装南向北的或东向西的传送带,但是每个格子中只能装一种传送带,求最多能采多少矿 ...
- (中等) POJ 2948 Martian Mining,DP。
Description The NASA Space Center, Houston, is less than 200 miles from San Antonio, Texas (the site ...
- 递推DP UVA 1366 Martian Mining
题目传送门 /* 题意:抽象一点就是给两个矩阵,重叠的(就是两者选择其一),两种铺路:从右到左和从下到上,中途不能转弯, 到达边界后把沿途路上的权值相加求和使最大 DP:这是道递推题,首先我题目看了老 ...
- POJ 2948 Martian Mining
Martian Mining Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2251 Accepted: 1367 Descri ...
- UVA 1366 九 Martian Mining
Martian Mining Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Sta ...
- POJ 2498 Martian Mining
Martian Mining Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2194 Accepted: 1326 De ...
- 【BZOJ-3174】拯救小矮人 贪心 + DP
3174: [Tjoi2013]拯救小矮人 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 686 Solved: 357[Submit][Status ...
- BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP
BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀 ...
随机推荐
- ios各个型号设备屏幕分辨率总结
https://blog.csdn.net/amyloverice/article/details/79389357 iPhone: iPhone 1G 320x480 iPhone 3G 3 ...
- HDP3.1 中配置 YARN 的 timeline server 使用外部的 HBase
HDP3.1 中的 YARN 的 timeline server 默认使用内置的 HBase,不知道为什么,总是过几天就挂掉,暂时还没找到原因.后来想着让它使用外部的 HBase 看看会不会还有此问题 ...
- 清北刷题冲刺 10-31 p.m
数列 #include<iostream> #include<cstdio> using namespace std; long long a,b,ans; void f(lo ...
- 2017-10-17 NOIP模拟赛2
a [问题描述]你是能看到第一题的 friends 呢.——hja何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为字符串定义了新的权值计算方法.一个字符串由小写字母组成,字符串的 ...
- ubuntu命令错误集
1.在ubuntu命令行使用rz从windows传输文件时出现乱码 解决方法:使用 rz -e 选项进行传输,一般小文件传输不用加 -e 选项,大文件传输需要.
- Git Remote (转)
基本使用 git是一个分布式代码管理工具,所以可以支持多个仓库,在git里,服务器上的仓库在本地称之为remote. 直接clone一个仓库: $: git clone git@search.ued. ...
- BestCoder Round #86 1001
链接http://acm.hdu.edu.cn/showproblem.php?pid=5804 题意:给你一些商店和他的商品价格,然后给你一个记账本,问你记大了就是1,否则是0 解法:模拟,注意测试 ...
- Murano package
Murano have 2 package types: HOT package with Heat template inside and MuranoPL package with MuranoP ...
- (四)Redis主从复制(单机版,不集群)
持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可 ...
- 再谈Drupal 7.X的性能优化运行速度问题
D6升级D7之后,性能着实让人头大,不妨参考下面文章,另外站内搜索DOOOOR里其他优化文章,中西医结合吧.其中CDN和BOOST效果还可以,其他的没试过. 1,服务器 Web服务器建议,推荐使用HA ...