DP 免费馅饼 HDU1176
DP 免费馅饼 HDU1176
一道基本的DP题,状态转移很好想,每一个状态的位置\(pos\)都只能由上一秒的\(pos-1, pos, pos+1\)三个位置转移而来(当然要判断边界情况),这种简单的转移就直接写代码写死就行了,不需要像其他DP,还需要一个循环来专门决策。另外,这种DP写法还有点技巧,即是从最后一秒向前倒着推的,最后答案直接就是dp[0][5](注意不是dp[1][5])的值,不需要再循环判断一次。
AC 62ms Code:
#include <cstdio>
#include <cstring>
#define MAX(A,B) ((A)>(B)?(A):(B))
using namespace std;
int dp[100005][15];
int n;
int main()
{
while(scanf("%d", &n), n!=0){
memset(dp, 0, sizeof(dp));
int cnt=0;
for(register int i=0;i<n;i++){
int x,t;scanf("%d %d", &x, &t);
++dp[t][x]; //直接在dp[][]里面操作,节约了一个a[][]费用数组
cnt=MAX(cnt, t);
}
for(register int i=cnt;i>=0;--i)
for(register int j=0;j<=10;++j){
if(j==0) //边界判断
dp[i][j]+=MAX(dp[i+1][j], dp[i+1][j+1]);
else if(j==10)
dp[i][j]+=MAX(dp[i+1][j], dp[i+1][j-1]);
else
dp[i][j]+=MAX(dp[i+1][j], MAX(dp[i+1][j-1], dp[i+1][j+1]));
}
printf("%d\n", dp[0][5]); //最终状态即dp[0][5]
}
return 0;
}
DP 免费馅饼 HDU1176的更多相关文章
- (动态规划)免费馅饼--hdu--1176
http://acm.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- kuangbin专题十二 HDU1176 免费馅饼 (dp)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU1176 免费馅饼 —— DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others ...
- 【HDU - 1176 】免费馅饼 (逆dp)
免费馅饼 Descriptions: 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...
- HDU 1176免费馅饼 DP数塔问题转化
L - 免费馅饼 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- 免费馅饼(HDU 1176 DP)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 解题报告 HDU1176 免费馅饼
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu1176 (免费馅饼)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- dp之免费馅饼
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
随机推荐
- Windows 毫秒计时
#include <windows.h> #include <iostream> using namespace std; LARGE_INTEGER MilliSecondT ...
- 9个使用前必须再三小心的 Linux 命令-乾颐堂
Linux shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹.文件或者路径文件夹等被删除. 在一些情况下,Linux 甚至不会询问你而直接执行命令,导致你丢失各种数据信息 ...
- N-Gram的数据结构
ARPA的n-gram语法如下: [html] view plaincopyprint? \data\ ngram 1=64000 ngram 2=522530 ngram 3=173445 \1-g ...
- mysqli_query(“set nams utf8”)为FALSE
经过过测试: mysqli_query("set nams utf8")必须在所有语句的执行之前,否则会返回FALSE. 看手册,说不建议用mysqli_query来设置编码,用 ...
- 【Android开发精要笔记】Android组件模型解析
Android组件模型解析 Android中的Mashup 将应用切分成不同类别的组件,通过统一的定位模型和接口标准将他们整合在一起,来共同完成某项任务.在Android的Mashup模式下,每个组件 ...
- Head First Python之3文件与异常
文件基本操作 Python从文本读取数据时,一次会到达一个数据行. sketch.txt文件 Man: Is this the right room for an argument? Other Ma ...
- vs下C# WinForm 解决方案里面生成的文件都是什么作用?干什么的?
Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需 ...
- Android view状态保存
为什么我们需要保存View的状态? 这个问题问的好!我坚信移动应用应该帮助你解决问题,而不是制造问题. 想象一下一个非常复杂的设置页面: 这并不是从一个移动应用的截图(这不是典型的win32程序吗.. ...
- PyCharm可用Active Code分享
目前可用,不保证更新!请及时取用. 6YQUPH9R7H-eyJsaWNlbnNlSWQiOiI2WVFVUEg5UjdIIiwibGljZW5zZWVOYW1lIjoi5o6I5p2D5Luj55C ...
- VC6.0加载lib文件的三种方法
MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译 ...