时间和位置都可以决定这一秒捡到的馅饼数

不妨设\(dp[i][j]\)为在\(i\)秒\(j\)位置的最大收益

那么\(dp[0][5]=0\),dp数组的其他部分置成-1代表不能转移

那么对于第\(i\)秒,可以从第\(i-1\)秒的j,j-1,j+1位置转移而来

代码也呼之欲出了

#include <iostream>
#include <cstring>
#include <cstdio>
#include <math.h>
using namespace std;
const int maxn=100009;
int n,vis[maxn][13],dp[maxn][13];
int main()
{
while(cin>>n&&n)
{
int ans=0,x,y,da=0;
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
vis[y][x]++;//y秒有x个饼
da=max(da,y);
}
memset(dp,-1,sizeof(dp));
dp[0][5]=0;
for(int i=1;i<=da;i++)
{
for(int j=0;j<=10;j++)
{
if(j!=10&&dp[i-1][j+1]!=-1)
dp[i][j]=max(dp[i][j],dp[i-1][j+1]+vis[i][j]);
if(dp[i-1][j]!=-1)
dp[i][j]=max(dp[i][j],dp[i-1][j]+vis[i][j]);
if(j!=0&&dp[i-1][j-1]!=-1)
dp[i][j]=max(dp[i][j],dp[i-1][j-1]+vis[i][j]);
ans=max(ans,dp[i][j]);
}
}
cout<<ans<<endl;
}
}

最新文章

  1. 【C#进阶系列】30 学习总结
  2. iOS 获取沙盒路径方法
  3. C#穷举
  4. Force.com平台基础--前言
  5. Chrome 开发工具 Javascript 调试技巧
  6. jQuery表单验证以及将表单序列化为json对象小练习
  7. 各种浏览器兼容篡位的css样式写法
  8. Foundation 框架
  9. c/c++数组名和指针区别深入探索
  10. ZOJ 3635 Cinema in Akiba(线段树)
  11. Grunt使用教程(限winows)
  12. 【Spring源码深度解析学习系列】默认标签解析(三)
  13. ●BZOJ 3676 [Apio2014]回文串
  14. springboot+mybatis+ehcache实现缓存数据
  15. 查询SQLSERVER执行过的SQL记录(历史查询记录)
  16. IDEA 相关整理
  17. XML 和 DTD
  18. 通过 SSH 转发TCP连接数据
  19. Java 注解用法详解——@SuppressWarnings
  20. Vmware虚拟硬盘合并多个分割文件

热门文章

  1. Mac OS安装docker
  2. alg-最长公共子序列
  3. tf.train.GradientDescentOptimizer 优化器
  4. Dempster–Shafer theory(D-S证据理论)初探
  5. js数组的遍历(API)
  6. PLSQL Developer 中文乱码踩坑记
  7. JSON Extractor(JSON提取器)
  8. Git敏捷开发--stash命令
  9. 数据结构与算法--树(tree)结构
  10. srt字幕翻译