免费馅饼


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 26163    Accepted Submission(s): 8920

Problem Description

都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。

说来gameboy的人品实在是太好了。这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼假设掉在了地上当然就不能吃了,所以gameboy立即卸下身上的背包去接。

但因为小径两側都不能站人。所以他仅仅能在小径上接。

因为gameboy平时老呆在房间里玩游戏,尽管在游戏中是个身手敏捷的高手。但在现实中运动神经特别迟钝,每秒种仅仅有在移动不超过一米的范围内接住坠落的馅饼。如今给这条小径如图标上坐标:



为了使问题简化,如果在接下来的一段时间里,馅饼都掉落在0-10这11个位置。

開始时gameboy站在5这个位置。因此在第一秒,他仅仅能接到4,5,6这三个位置中当中一个位置上的馅饼。问gameboy最多可能接到多少个馅饼?(如果他的背包能够容纳无穷多个馅饼)

 

Input

输入数据有多组。每组数据的第一行为以正整数n(0<n<100000),表示有n个馅饼掉在这条小径上。

在结下来的n行中。每行有两个整数x,T(0<T<100000),表示在第T秒有一个馅饼掉在x点上。同一秒钟在同一点上可能掉下多个馅饼。

n=0时输入结束。

 

Output

每一组输入数据相应一行输出。

输出一个整数m。表示gameboy最多可能接到m个馅饼。

提示:本题的输入数据量比較大,建议用scanf读入,用cin可能会超时。

Sample Input

6

5 1

4 1

6 1

7 2

7 2

8 3

0

 

Sample Output

4

 

Author

lwg

题目大意:总共同拥有0~10个位置。gameboy站在5的位置上。给你馅饼

掉落的时间的位置。gameboy每秒仅仅能到自己位置临近的位置接馅饼。

比方在5的位置上仅仅能接到4 5 6的馅饼。在7的位置上仅仅能接到 6 7 8的

馅饼。问gameboy最后最多能接到多少馅饼。

思路:动态规划的思想。

将位置总体右移一个单位。位置为1~11。这样方便计算。

建立二维数组。一维代表时间。二维代表位置。点上的值代表馅饼的个数。

按时间顺序存储馅饼个数。

最后从底往上递推。

每次比較馅饼位置i和馅饼位置i-1和馅饼位置i+1的馅饼

个数。

dp[i][j] = max(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1])+v[i][j];

dp[0][6]就是终于结果。

#include<stdio.h>
#include<string.h> int dp[100010][12];
int main()
{
int n,pos,time,Maxtime;
while(~scanf("%d",&n) && n)
{
Maxtime = 0;
memset(dp,0,sizeof(dp));
for(int i = 1; i <= n; i++)
{
scanf("%d%d",&pos,&time);
dp[time][pos+1]++;//pos为0的时候左边还得加推断,这里位置总体右移
if(time > Maxtime)
Maxtime = time;
} for(int i = Maxtime-1; i >= 0; i--)
{
for(int j = 1; j <= 11;j++)
{
int num1 = dp[i+1][j-1];
int num2 = dp[i+1][j];
int num3 = dp[i+1][j+1];
int Max = 0;
if(Max < num1)
Max = num1;
if(Max < num2)
Max = num2;
if(Max < num3)
Max = num3;
dp[i][j] += Max;
}
} printf("%d\n",dp[0][6]);
}
return 0;
}

HDU1176_免费馅饼【号码塔】的更多相关文章

  1. hdu 1176 免费馅饼(数塔类型)

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  2. [hdu1176]免费馅饼(数塔dp)

    题意:中文题,不解释了 = = 解题关键:逆推,转化为数塔dp就可以了 dp[i][j]表示在i秒j位置的最大值. 转移方程:$dp[i][j] = \max (dp[i + 1][j],dp[i + ...

  3. HDU 1176 免费馅饼 (动态规划、另类数塔)

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

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

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

  5. hdu1176免费馅饼(动态规划,数塔)

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

  6. nyoj 613 免费馅饼 广搜

    免费馅饼 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...

  7. HDU 1176 免费馅饼

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

  8. 1644 免费馅饼 题解(c++)(S.B.S.)

    1644 免费馅饼(巴蜀oj上的编号) 题面:          SERKOI最新推出了一种叫做“免费馅饼”的游戏.         游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占 ...

  9. 解题报告 HDU1176 免费馅饼

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

随机推荐

  1. [Win]进程间通信——邮槽Mailslot

    进程间通信 进程的地址空间是私有的.出于安全性的目的,如果一个进程不具有特殊的权限,是无法访问另外一个进程的内存空间的,也无法知道内存中保存的数据的意义.但是在一些具体的应用情况下需要多个进行相互配合 ...

  2. Shell 传递参数

    Shell 传递参数 向脚本传递参数,格式为:$n. 向脚本传递三个参数,并分别输出: echo "Shell 传递参数实例!"; echo "第一个参数为:$1&quo ...

  3. WebGL自学教程——WebGL演示样本:开始

    最终开始WebGL样品演示,...... 开始 使用WebGL步骤,非常easy: 1. 获得WebGL的渲染环境(也叫渲染上下文). 2. 发挥你的想象力,利用<WebGL參考手冊>中的 ...

  4. WebSocket是一种协议

    WebSocket,并非HTML 5独有,WebSocket是一种协议.只是在handshake的时候,发送的链接信息头和HTTP相似.HTML 5只是实现了WebSocket的客户端.其实,难点在于 ...

  5. Windowbuilder之swt designer安装与使用(转)

    SWT可视化设计,可以使用Google的WindowBuilder. 在Google Code中,搜索WindowBuilder就可以看到路径. 在Eclipse中   Help--->Inst ...

  6. 100M 宽带办理

    http://zj.189.cn/zhuanti/kdsbz#%E5%8D%95%E5%AE%BD%E5%B8%A6%E7%89%B9%E6%83%A0

  7. 并发编程实践五:ReentrantLock

    ReentrantLock是一个可重入的相互排斥锁,实现了接口Lock,和synchronized相比,它们提供了同样的功能.但ReentrantLock使用更灵活.功能更强大,也更复杂.这篇文章将为 ...

  8. 《转》Python多线程学习

    原地址:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html 一.Python中的线程使用: Python中使用线程有两种方式 ...

  9. lightoj 1179(线段树)

    传送门:Josephus Problem 题意:经典约瑟夫问题,有n个人,每次数到第k个人出列,求剩下的最后一人. 分析:用线段树模拟约瑟夫问题,记录区间的减少情况,然后根据每次数到的人在区间排第几位 ...

  10. KFC - About KFC - Quality Assurance

    KFC - About KFC - Quality Assurance Restaurant Quality The main attributes for KFC restaurant excell ...