【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 ...
随机推荐
- linux中ldconfig的使用介绍
linux中ldconfig的使用介绍 ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享. ldconfig的主要用途: 默认搜寻/lilb和/usr/lib,以及配置文件 ...
- webpack-dev-server
webpack-dev-server是一个小型的node.js Express服务器,它使用webpack-dev-middleware中间件来为通过webpack打包生成的资源文件提供Web服务.它 ...
- SQL Server 2012复制教程以及复制的几种模式
简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...
- [NHibernate]缓存(NHibernate.Caches)
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...
- SameSite Cookie,防止 CSRF 攻击
因为 HTTP 协议是无状态的,所以很久以前的网站是没有登录这个概念的,直到网景发明 cookie 以后,网站才开始利用 cookie 记录用户的登录状态.cookie 是个好东西,但它很不安全,其中 ...
- PHP 表单
PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入. 表单验证: 应该在任何可能的时候对用户输入进行验证(通过客户端脚本).浏览器验证速度更快,并且可以减轻服务器的负载 ...
- [Python] 目录和文件操作
在Linux系统下用Python写脚本,肯定不能避免各种与目录和文件夹有关的操作.为了以后方便查阅,简单地针对Python中与目录和文件夹有关的操作进行汇总. 需要实现导入的模块为: import o ...
- 微信安卓版下载 Android微信各版本列表
前面ytkah弄了一个iso微信各版本列表,现在就来整一个微信 for Android各版本列表,方便大伙下载.每个版本都放出一些新的功能或修复相关错误,详情可以点击下面的版本链接进行查看.资源收集于 ...
- PHP变量作用域详解(二)
学过C的人用PHP的时候一般会相当顺手,而且感到PHP太方便太轻松.但在变量作用域这方面却与C有不同的地方,搞不好会相当郁闷,就找不到错误所在.昨晚就与到这么一个问题,是全局变量在函数中的问题.今天搜 ...
- 限制帐号同时两处以上登录-ASP.NET
///登录页面 Hashtable haol = (Hashtable)Application["olTable"]; if (haol == null) { haol = new ...