HDU 1176 DP
题目大意:
在0~10这11个点上面接饼 , 每秒最多往左或往移动一格,或者保持原地不动
令dp[i][j]表示在第 i 秒在 第 j 个点上最多能得到的饼的数量
dp[i][j] = max(dp[i-1][j] , dp[i-1][j-1] , dp[i-1][j+1]) + a[i][j] //a[i][j]在 i 时刻第 j 个位置会掉下来的饼的数量,如果没有置为0
这里要注意的一点是,最初从 5 号点出发,我们需要考虑到后面即使有饼因为根本无法走到那个位置,因而拿不到饼的情况
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
const int TIME = ; int dp[TIME][] , vis[] , a[TIME][]; int main()
{
int n , x , t , time;
while(scanf("%d" , &n) , n)
{
time = ;
memset(a , , sizeof(a));
for(int i = ; i<n ; i++){
scanf("%d%d" , &x , &t);
time = max(time , t);
a[t][x]++;
} memset(dp , - , sizeof(dp));
dp[][] = ;//表示在第0秒只有5号点可到达的,其他不可达的点均为-1
for(int i = ; i<=time ; i++){
//动态规划更新第time时间的11个点的位置能达到的最优的dp值
if(dp[i-][] >= || dp[i-][] >= )
dp[i][] = max(dp[i-][] , dp[i-][]) + a[i][]; for(int j = ; j< ; j++){
if(dp[i-][j-] >= || dp[i-][j] >= || dp[i-][j+] >=)
dp[i][j] = max(dp[i-][j] , max(dp[i-][j-] , dp[i-][j+])) + a[i][j];
}
if(dp[i-][] >= || dp[i-][] >= )
dp[i][] = max(dp[i-][] , dp[i-][]) + a[i][]; /*for(int j = 0 ; j<=10 ; j++)
printf("%-4d" , dp[i][j]);
printf("\n");*/
} int maxn = ;
for(int i = ; i<= ; i++)
maxn = max(maxn , dp[time][i]);
printf("%d\n" , maxn);
}
return ;
}
HDU 1176 DP的更多相关文章
- 免费馅饼(HDU 1176 DP)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU 1176 免费馅饼(记忆化搜索)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 【DP】HDU 1176
HDU 1176 免费馅饼 题意:中文题目不解释. 思路:因为是从中间出发所以思路卡了许久,还在之前做了道HIHO入门的题.能想到的点,从时间思考,然后初始化1s的时候,4,5,6,的数值要特别赋值. ...
- HDU 1176免费馅饼 DP数塔问题转化
L - 免费馅饼 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- 怒刷DP之 HDU 1176
免费馅饼 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- HDU 1176 免费馅饼(DP)
职务地址:HDU 1176 以时间为横轴.11个点位纵轴构造一个矩阵.然后利用数字三角形的方法从上往下递推下去. 代码例如以下: #include <iostream> #include ...
- hdu 1176 免费馅饼(nyist 613)
http://acm.hdu.edu.cn/showproblem.php?pid=1176 dp[i][j]:表示第i秒接j位置的馅饼的最大值. 三种状态: dp[i][j]=max(dp[i-1] ...
- hdu 3016 dp+线段树
Man Down Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- HDU 1176 免费馅饼 (动态规划)
HDU 1176 免费馅饼 (动态规划) Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼 ...
随机推荐
- Head Html Css 第二版笔记
一. 引用 <blockquote>ago aog aogag </blockquote> 则是引用一大段文字并独立显示 二. <a> 创建目的地 <h2&g ...
- ssh&远程桌面连接工具finalshell
无意间发现的一款工具,有兴趣的可以看看点我进入官网 百度云盘 链接:https://pan.baidu.com/s/1wMuGav64e2zV91QznBkvag 密码:zpyb软件特点直接搬运的官方 ...
- 实现grep命令
#include <stdio.h> #include <string.h> #include <stdlib.h> // grep命令:grep match_pa ...
- 数学+DP Codeforces Round #304 (Div. 2) D. Soldier and Number Game
题目传送门 /* 题意:这题就是求b+1到a的因子个数和. 数学+DP:a[i]保存i的最小因子,dp[i] = dp[i/a[i]] +1;再来一个前缀和 */ /***************** ...
- 各种轮播实现(纯css实现+js实现)
1.纯Css实现轮播效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Previous operation has not finished; run 'cleanup' if it was interrupted.SVN报错
原因: 错误的原因是SVN管理的文件夹改名.删除文件太过频繁,导致有操作挂起了. 解决方式: 1.百度sqlite3.exe并下载. 2.将该文件解压到项目根目录下的.svn文件夹中. 3.打开cmd ...
- SqlServer学习-常用的sql语句-持续更新中
1.获取数据库下的所有表名 select TABLE_NAME from information_schema.tables where TABLE_TYPE='Base TABLE' 2.随机取出1 ...
- JavaScript设计模式 (1) 原型模式
原型模式(Prototype):用原型实例指向创建类对象,使用于创建新对象的类共享原型对象的属性以及方法. //图片轮播类 var LoopImages = function (imgArr, con ...
- MySQL详解(25)-----------MySQL性能优化
1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性 ...
- MySQL详解(18)-----------分页方法总结
---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适应场景: 适用于数据量较少的情况(元组百/千 ...