CodeForces 429 B Working out(递推dp)
题目连接:B. Working out
我想了很久都没有想到怎么递推,看了题解后试着自己写,结果第二组数据就 wa 了,后来才知道自己没有判选择的两条路径是否只是一个交点。
大概思路是:先预处理出每个格子到四个角落格子的路径最大数值,然后枚举两个人相遇的交点格子,枚举 A、B 的进来和出去方式(记两个线路为 1 和 2,考虑一个公共点,1 为左进右出,2 为下进上出;1 上进下出,2 为左进右出),然后求最大值即可。
注意边界情况。
原题解链接:http://blog.csdn.net/cc_again/article/details/25691925, http://blog.csdn.net/qq574857122/article/details/25625151
我的代码:(全用宏定义了 -_-|| )
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define sd(x) scanf("%d",&(x))
#define sd2(x,y) scanf("%d %d",&(x),&(y))
typedef long long LL; LL dp[][][], a[][]; #define For(i,s,t) for(int i = s; i <= t; ++i)
#define desFor(i,t,s) for(int i = t; i >= s; --i) int main() {
int n,m;
while(~sd2(n,m)) {
For(k,,) For(i,,n+)
dp[k][i][m + ] = ;
For(k,,) For(j,,m+)
dp[k][n + ][j] = ;
For(i,,n) For(j,,m)
sd(a[i][j]);
// 递推预处理出所有交点到 4 个角的最大值
For(i,,n) For(j,,m)
dp[][i][j] = max(dp[][i-][j], dp[][i][j-]) + a[i][j];
For(i,,n) desFor(j,m,)
dp[][i][j] = max(dp[][i-][j], dp[][i][j+]) + a[i][j];
desFor(i,n,) For(j,,m)
dp[][i][j] = max(dp[][i+][j], dp[][i][j-]) + a[i][j];
desFor(i,n,) desFor(j,m,)
dp[][i][j] = max(dp[][i+][j], dp[][i][j+]) + a[i][j];
LL ans = ;
// 枚举所有交点
For(i,,n-) For(j,,m-) {
// 第一种路径选择: A 从上往下穿过交点 dp[i][j],B 从左向右穿过 dp[i][j]
LL first = dp[][i-][j] + dp[][i+][j] + dp[][i][j+] + dp[][i][j-];
ans = max(ans, first);
// 第二种路径选择: A 从左向右穿过交点 dp[i][j],B 从上往下穿过 dp[i][j]
LL second = dp[][i][j-] + dp[][i][j+] + dp[][i-][j] + dp[][i+][j];
ans = max(ans, second);
}
printf("%I64d\n",ans);
}
return ;
}
CodeForces 429 B Working out(递推dp)的更多相关文章
- Codeforces 429B Working out(递推DP)
题目链接:http://codeforces.com/problemset/problem/429/B 题目大意:两个人(假设为A,B),打算健身,有N行M列个房间,每个房间能消耗Map[i][j]的 ...
- 递推DP URAL 1167 Bicolored Horses
题目传送门 题意:k个马棚,n条马,黑马1, 白马0,每个马棚unhappy指数:黑马数*白马数,问最小的unhappy值是多少分析:dp[i][j] 表示第i个马棚放j只马的最小unhappy值,状 ...
- 递推DP URAL 1017 Staircases
题目传送门 /* 题意:给n块砖头,问能组成多少个楼梯,楼梯至少两层,且每层至少一块砖头,层与层之间数目不能相等! 递推DP:dp[i][j] 表示总共i块砖头,最后一列的砖头数是j块的方案数 状态转 ...
- 递推DP URAL 1260 Nudnik Photographer
题目传送门 /* 递推DP: dp[i] 表示放i的方案数,最后累加前n-2的数字的方案数 */ #include <cstdio> #include <algorithm> ...
- 递推DP URAL 1353 Milliard Vasya's Function
题目传送门 /* 题意:1~1e9的数字里,各个位数数字相加和为s的个数 递推DP:dp[i][j] 表示i位数字,当前数字和为j的个数 状态转移方程:dp[i][j] += dp[i-1][j-k] ...
- 递推DP URAL 1119 Metro
题目传送门 /* 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 递推DP:仿照JayYe,处理的很巧妙,学习:) 好 ...
- 递推DP 赛码 1005 Game
题目传送门 /* 递推DP:官方题解 令Fi,j代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜 转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩 ...
- 递推DP HDOJ 5328 Problem Killer
题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...
- hdu1978(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 分析: 递推DP. dp[][]表示可以到达改点的方法数. 刚开始:外循环扫描所有点dp[x][ ...
- 递推DP URAL 1031 Railway Tickets
题目传送门 /* 简单递推DP:读题烦!在区间内的都更新一遍,dp[]初始化INF 注意:s1与s2大小不一定,坑! 详细解释:http://blog.csdn.net/kk303/article/d ...
随机推荐
- [团队项目3.0]Scrum团队成立
Scrum团队成立 5.Scrum团队成立 5.1 团队名称,团队目标.团队口号.团队照: 5.2 角色分配 产品负责人: 决定开发内容和优先级排序,最大化产品以及开发团队工作的价值. Scrum M ...
- js笔记----(运动)分享 隐藏/显示
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 20150813 Asp.net 关闭子窗体 刷新Tree控件
主窗体************************************************************************************ using System ...
- 关于List.ToArray()方法的效率测试
之前一直认为因为List内部是数组,ToArray的实现只是将数组返回出去而已. 今天测了一下发现并不是那样 var a = new List<int>(); ; i < ; i++ ...
- 【TCP】超时与重传
在TCP连接中假设发送方一开始便向网络发送多个报文段,直到达到接收方通告的窗口大小为止.当发送方和接收方处于同一个区域网段时,这种方式是可以的.但是如果发送方和接收方之间存在多个路由器和速率较慢的链路 ...
- linux ftp服务
1 安装ftp服务 [root@localhost ~]# yum install vsftpd 启动:service vsftpd start 查看状态:systemctl |grep vsftpd ...
- Android的消息处理机制Looper,Handler,Message
android的消息处理有三个核心类:Looper,Handler和Message.其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因 ...
- cetos6.5安装Tomcat
一. 下载Tomcat 官网下载Tomcat tar.gz文件 二. 解压tar.gz文件 tar -zxvf tomcat.tar.gz 三. 在catalina.sh最上面添加一下内容 expo ...
- 数据库连接池系列之——c3p0
c3p0的jar包是:c3p0-0.9.1.jar <bean id = "dataSource" class = "com.mchange.v2.c3p0.Com ...
- 我的android学习经历27
前几天忙着学校的互联网+项目比赛,没有时间学习android和发一些东西,主要是这两天太累了,我是项目组长,好多东西去弄,今天已经交稿去进行初赛. 马上收拾收拾心情,继续我的andorid菜鸟之路 加 ...