DP 免费馅饼 HDU1176

vjudge题面

一道基本的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;
}

最新文章

  1. CentOS 7中如何安装mysql server
  2. Memcached,你懂的
  3. solr5.5教程-Analyzer、Tokenizer、Filter
  4. 用opencv的traincascade训练检测器
  5. 安全框架 SpringSecurity 和 Shiro 对比
  6. poj3254 Corn Fields (状压DP)
  7. 使用Resource Owner Password Credentials Grant授权发放Token
  8. delphi 去掉TreeView水平滚动条
  9. 修改hosts文件(判断是否为管理员/以管理员权限运行脚本)
  10. 织梦 {dede:list}列表按多种排序显示
  11. java知识点梳理
  12. Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息
  13. 微信小程序-设计指南
  14. 想成为Python全栈开发工程师必须掌握的技能
  15. IAR Embedded Workbench for ARM 8.22.1 基础使用教程
  16. ELF文件解析(一):Segment和Section
  17. EF crud操作
  18. zjoi 网络
  19. django url 中的namespace详解
  20. sam9260 闲鱼

热门文章

  1. 回顾2017系列篇(三):UX设计大会,都预示了哪些设计趋势
  2. beecloud resrful api test(nodejs)
  3. python可视化
  4. Django进阶(转载)
  5. CentOS 7.2安装zabbix 3.0 LTS
  6. 如何在github上上传readme文件
  7. Tomcat负载均衡原理详解及配置(Apache2.2.19+Tomcat7.0.12)
  8. [Erlang05]gen_server怎么去写eunit?
  9. Re:从零开始的Spring Security Oauth2(二)
  10. Python扫描邮件主题,并打印