【DP】HDU 1176
HDU 1176 免费馅饼
题意:中文题目不解释。
思路:因为是从中间出发所以思路卡了许久,还在之前做了道HIHO入门的题。能想到的点,从时间思考,然后初始化1s的时候,4,5,6,的数值要特别赋值。之后就是统一的2-maxtime时间内,到当前位置就有能移动的三种情况,左移,右移,停留,比较前一秒情况的最大值+当前位置时间的馅饼值(maps[i][j]),最后求最大馅饼值得时候,要从maxtime来求。
dp[i][j] = max(dp[i-1][j],dp[i-1][j-1],dp[i-1][j+1])+maps[i][j]
(maps[i][j]为当前所在位置所能获得的馅饼值)
/**
Sample Input
6
5 1
4 1
6 1
7 2
7 2
8 3
0
Sample Output
4
**/
#include <cstdio>
#include <cstring>
#include <utility>
#include <algorithm>
using namespace std;
const int maxn = 100005;
int n;
int dp[maxn][15]; //二维注意不要爆内存,列大小填15就可以了
int maps[maxn][15];
int main()
{
while(~scanf("%d",&n)){
memset(dp,0,sizeof(dp));
memset(maps,0,sizeof(maps));
if(!n) break;
int time = 0;
for(int i=0;i<n;i++){
int x,T;
scanf("%d%d",&x,&T);
++maps[T][x];
time = max(T,time);
}
//特殊的1s,特殊处理
dp[1][4] = maps[1][4];
dp[1][5] = maps[1][5];
dp[1][6] = maps[1][6];
int res = 0;
//时间2s-maxtime开始算
for(int i=2;i<=time;i++){
for(int j=0;j<=10;j++){
dp[i][j] = max(dp[i-1][j+1],max(dp[i-1][j-1],dp[i-1][j]))+maps[i][j];
}
}
for(int i=0;i<=10;i++)
res = max(dp[time][i],res);
printf("%d\n",res);
}
return 0;
}
【DP】HDU 1176的更多相关文章
- 【dp】HDU 1421 搬寝室
http://acm.hdu.edu.cn/showproblem.php?pid=1421 [题意] 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2 ...
- 【DP】HDU 1260
HDU 1260 Tickets 题意:有N个人要买票,你可以一个一个人卖票,时间分别为Xs,也可以相邻两个人一起卖票,时间为Ys,从早上八点开始卖票,问你何时最早将N个人的票卖完. 思路:解决情况是 ...
- 【DP】HDU 1114
HDU 1144 Piggy-Bank 题意:有这么个存钱罐,给你空的时候重量和满的时候的重量,再给你N中类型的硬币(给出N种硬币总数量和总重量,可多次使用),问你怎样恰好填满存钱罐,而让填入的硬币数 ...
- 【DP】HDU 1087
HDU 1078 Super Jumping! Jumping! Jumping! 题意: 有这么个游戏,从start到end(自己决定在哪停下来)连续跳圈,中间不能空一个圈不跳,圈里的数字必须比你上 ...
- HDOJ_1087_Super Jumping! Jumping! Jumping! 【DP】
HDOJ_1087_Super Jumping! Jumping! Jumping! [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- Kattis - honey【DP】
Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...
- HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】
HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...
- HDOJ 1501 Zipper 【DP】【DFS+剪枝】
HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDOJ 1257 最少拦截系统 【DP】
HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
随机推荐
- C++ GC
http://www.codeproject.com/Articles/912/A-garbage-collection-framework-for-C http://www.codeproject. ...
- 淘宝分布式NOSQL框架:Tair
Tair 分布式K-V存储方案 tair 是淘宝的一个开源项目,它是一个分布式的key/value结构数据的解决方案. 作为一个分布式系统,Tair由一个中心控制节点(config server)和一 ...
- CentOS7下搭建邮件服务器(dovecot + postfix + SSL)
CentOS 花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + ...
- 2015.4.24 移动端,chrome不兼容或无法运行的一些具体问题
1.table内input,把它的边框和focus边框都变成透明,在ff可行,但是chrome会有样式,怎么解决? 解决方法:border:none;outline:0; 2.如下代码,css3动画在 ...
- esnext:最后一个参数后面也允许加逗号了
https://jeffmo.github.io/es-trailing-function-commas 目前是一个 stage 3 的提案,Chakra 和 JSC 已经实现了,它允许我们在函数定义 ...
- ReactiveCocoa源码拆分解析(三)
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 这一章节主要讨论信号的“冷”与“热” 在RAC的世界 ...
- Java Native Interfce三在JNI中使用Java类的普通方法与变量
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 前面我们学习了如何在JNI中通过参数来使用J ...
- JavaScript深入浅出6-函数和作用域
慕课网教程视频地址:Javascript深入浅出 函数的概念:定义一次可调用多次的javascript代码段 创建函数:声明 function fuc(){} 声明前置 表达式 var fuc= ...
- Mybatis在insert操作时返回主键
今天在写项目的时候,遇到一个需求,就是在像数据库插入数据的时候,要保留插入数据的主键,以便后续进行级联时,可以将该主键作为另张表的外键. 但是在正常情况下我们使用插入语句返回的是int型,含义是影响该 ...
- python 多个 %s 例子
input = , ) input 为: '{"a" : 1234, "b" : "14289", "c": " ...