题目大意:

在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的更多相关文章

  1. 免费馅饼(HDU 1176 DP)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. HDU 1176 免费馅饼(记忆化搜索)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. 【DP】HDU 1176

    HDU 1176 免费馅饼 题意:中文题目不解释. 思路:因为是从中间出发所以思路卡了许久,还在之前做了道HIHO入门的题.能想到的点,从时间思考,然后初始化1s的时候,4,5,6,的数值要特别赋值. ...

  4. HDU 1176免费馅饼 DP数塔问题转化

    L - 免费馅饼 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  5. 怒刷DP之 HDU 1176

    免费馅饼 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  6. HDU 1176 免费馅饼(DP)

    职务地址:HDU 1176 以时间为横轴.11个点位纵轴构造一个矩阵.然后利用数字三角形的方法从上往下递推下去. 代码例如以下: #include <iostream> #include ...

  7. 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] ...

  8. hdu 3016 dp+线段树

    Man Down Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  9. HDU 1176 免费馅饼 (动态规划)

    HDU 1176 免费馅饼 (动态规划) Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼 ...

随机推荐

  1. E20171102-E

    segment   n. 环节; 部分,段落; [计算机] (字符等的) 分段; [动物学] 节片; distinct  adj. 明显的,清楚的; 卓越的,不寻常的; 有区别的; 确切的;

  2. bzoj 3498: PA2009 Cakes【瞎搞】

    参考:https://www.cnblogs.com/spfa/p/7495438.html 为什么邻接表会TTTTTTTLE啊...只能用vector? 把点按照点权从大到小排序,把无向边变成排名靠 ...

  3. SQL编程语句

    视图 视图就是我们查询出来的虚拟表创建视图:create view 视图名 as SQL查询语句,分组,排序,in 等都不能写视图的用法: select * from 视图名 SQL编程 定义变量:d ...

  4. string与int的相互转换C++(转)

    string与int之间的相互转换C++(转) #include<iostream> #include<string> #include<sstream> usin ...

  5. Listview多种布局的使用

    ListView中有两个可以用来让ListView可以在视图中显示多种布局的方法,分别是getItemType和getViewTypeCount 其中 getItemViewType返回的是有参数po ...

  6. 动态调用链接库(dll) 续

    20141118 最近一周做了一个关于仓库管理,拣货任务分配的模块,其中涉及到刷卡自动打印领取任务的功能点. 技术点: C#调用C++.delphi的动态链接库.动态链接库的调用方法不同.效果也不相同 ...

  7. Tomcat无法clean,无法remove部署的项目

    错误: 对部署在Tomcat下的项目进行clean操作,总是提示Could not load the Tomcat server configuration,错误信息如图: 解决: 原来是将Serve ...

  8. Visual Studio TFS

    Overview:Active Directory环境下搭建TFS(一个domain内,with Domain Controller): 1)最简单的环境(这俩拓扑是从TFSAdmin文档中截取的,从 ...

  9. GPC:使用GPC计算intersection容易出现的问题

    在使用GPC计算多边形的交的时候,出现问题 //1.2. 另一种方法,判断新的多边形是否和老多边形相交     Poly cross = (PolyDefault) Clip.intersection ...

  10. vim之vimrc配置文件

    """"""""""""""""&quo ...