题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176

题意:

  横坐标范围为[0,10],你在第0秒站在坐标为5的地方。

  在接下来的一段时间内,会有n个馅饼落下来,每一个馅饼有一个位置x和时刻t。

  每一秒你最多可以移动1格。并且在某一个时刻,你只能接到你当前位置的馅饼。

  问你最多能接到多少馅饼。

  

题解:

  表示状态:

    dp[i][j] = max num of pancakes

    (1)第i秒

    (2)站在j的位置

  如何转移:

    当前dp[i][j]取决于i-1秒时j-1,j,j+1三个位置接馅饼的情况。

    但是,更新dp[i][j]的前提是上一个状态是可以达到的。比如说你第0秒在位置5,那么你不可能在第1秒到达位置10。

    所以一开始要将所有dp设为-1,表示不可到达。

    So...

      if(dp[i-1][j-1]!=-1) dp[i][j] = max(dp[i][j], dp[i-1][j-1]);

      if(dp[i-1][j]!=-1)   dp[i][j] = max(dp[i][j], dp[i-1][j]);

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

    另外还要加上现在第i秒接到的馅饼数:

      if(dp[i][j]!=-1) dp[i][j] += w[i][j];

  边界条件:

    你在第0秒时,站在位置5,接到了0个馅饼。

    (为了防止数组越界,给所有坐标+1)

    所以dp[0][6] = 0;

AC Code:

 // dp[i][j] = max num of pancakes
// dp[i][j] = max(dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1]) + w[i][j]
// edge: dp[5][0]
// enumerate:
// i: 1 to maxt
// j: 1 to 11 #include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_X 15
#define MAX_T 100005 using namespace std; int n;
int x,t;
int ans;
int maxt;
int w[MAX_T][MAX_X];
int dp[MAX_T][MAX_X]; int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==) break;
memset(w,,sizeof(w));
memset(dp,-,sizeof(dp));
ans=;
maxt=;
dp[][]=;
for(int i=;i<n;i++)
{
scanf("%d%d",&x,&t);
w[t][x+]++;
maxt=max(maxt,t);
}
for(int i=;i<=maxt;i++)
{
for(int j=;j<=;j++)
{
if(dp[i-][j-]!=-) dp[i][j]=max(dp[i][j],dp[i-][j-]);
if(dp[i-][j]!=-) dp[i][j]=max(dp[i][j],dp[i-][j]);
if(dp[i-][j+]!=-) dp[i][j]=max(dp[i][j],dp[i-][j+]);
if(dp[i][j]!=-) dp[i][j]+=w[i][j];
ans=max(ans,dp[i][j]);
}
}
printf("%d\n",ans);
}
}

HDU 1176 免费馅饼:dp的更多相关文章

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

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

  2. HDU 1176 免费馅饼(DP)

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

  3. HDU - 1176 免费馅饼 DP多种状态转移

    免费馅饼 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅饼如果掉在了 ...

  4. HDU 1176 免费馅饼 DP类似数塔题

    解题报告: 小明走在一条小路上,这条小路的长度是10米,从左到右依次是0到10一共十个点,现在天上会掉馅饼,给出馅饼掉落的坐标和时间,一开始小明的位置是在坐标为5的位置, 他每秒钟只能移动一米的距离, ...

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

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

  6. HDU 1176 免费馅饼 (类似数字三角形的题,很经典,值得仔细理解的dp思维)

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

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

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

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

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

  9. HDU 1176 免费馅饼

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

  10. HDU 1176 免费馅饼(数字三角形)

    免费馅饼 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉 ...

随机推荐

  1. centos中NAT模式下静态IP连接外网

    使用linux虚拟机时,通常会用到yum命令来安装软件,然而这个命令需要连外网下载软件,用maven下载jar包也需要外网.虚拟机在内网可以互相ping通,然而ping不了外网,于是通过试验,终于找到 ...

  2. Maven pom.xml配置详解

    POM的全称是“ProjectObjectModel(项目对象模型)”. 声明规范 <projectxmlns="http://maven.apache.org/POM/4.0.0&q ...

  3. VB6之WM_COPYDATA

    WM_COPYDATA消息是一种进程间通信的一种方式,参考文档如下: http://msdn.microsoft.com/en-us/library/windows/desktop/ms649011( ...

  4. CSS 回流(reflow)

    摘录: 1. 回流 回流是指浏览器为了重新渲染部分或者全部的文档而重新计算文档中元素的位置和几何构造的过程.    因为回流可能导致整个dom树的重新构造,所以会影响性能. 2. display:no ...

  5. Bash : 索引数组

    Bash 提供了两种类型的数组,分别是索引数组(indexed array)和关联数组(associative array).本文主要介绍索引数组的基本用法. 索引数组的基本特点 Bash 提供的数组 ...

  6. 《javascript 高级程序设计》笔记

    1-4章 1.变量①.ECMAScript 变量是松散类型的,也就是说可以用来保存任何类型的数据.换句话说每个变量仅仅是一个用于保存值的占位符.②.如果在函数中使用var定义一个变量,那么这个变量在函 ...

  7. CJOJ 2307 【一本通】完全背包(动态规划)

    CJOJ 2307 [一本通]完全背包(动态规划) Description 设有n种物品,每种物品有一个重量及一个价值.但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干 ...

  8. T4 代码生成 Demo (抽奖程序)

    参考自这位大狮的:  https://github.com/Pencroff/Dapper-DAL/blob/master/Dapper-DAL/Models/ModelGenerator.tt 项目 ...

  9. Oozie时bin/oozied.sh start或bin/oozied.sh run出现Bootstrap进程无法启动,http://bigdatamaster:11000/oozie界面也无法打开?E0103: Could not load service classes, java.lang.ClassNotFoundException: Class org.apache.oozie.ser

    不多说,直接上干货! 问题详情 [hadoop@bigdatamaster oozie--cdh5.5.4]$ bin/oozied.sh start Setting OOZIE_HOME: /hom ...

  10. 编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统

    引言 在上篇文章(http://www.cnblogs.com/lightluomeng/p/7212577.html)中,初步实现了一个可配置的网页信息分析组件.但是由于是奔着解决事情的目的去的,所 ...