https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1455

很久没做动态规划了 菜的一批。。

dp[i][j]代表从i-j走了j步到i得到的最多宝石数量 但是复杂度太高

但是总长度只有30000 一开始走d步 每次增1 sqrt(30000)左右就会走到头 也就是说后续步伐与初始步伐的偏移量不超过sqrt(30000) 所以第二维可以降成几百左右

#include <bits/stdc++.h>
using namespace std;
const int maxn=3e4+10;
const int maxm=6e2+10;
const int det=300;int dp[maxn][maxm];
int pos[maxn];
int n,d;int main()
{int i,j,maxx,p,ans;scanf("%d%d",&n,&d);maxx=0;for(i=1;i<=n;i++){scanf("%d",&p);maxx=max(maxx,p);pos[p]++;}memset(dp,-1,sizeof(dp));dp[d][det]=pos[d];ans=pos[d];for(i=d+1;i<=maxx;i++){for(j=0;j<=600;j++){if(d<=i-(d+j-det)&&i-(d+j-det)<=maxx){if(j-1>=0&&dp[i-(d+j-det)][j-1]!=-1) dp[i][j]=max(dp[i][j],dp[i-(d+j-det)][j-1]+pos[i]);if(dp[i-(d+j-det)][j]!=-1) dp[i][j]=max(dp[i][j],dp[i-(d+j-det)][j]+pos[i]);if(j+1<=600&&dp[i-(d+j-det)][j+1]!=-1) dp[i][j]=max(dp[i][j],dp[i-(d+j-det)][j+1]+pos[i]);ans=max(ans,dp[i][j]);}}}printf("%d\n",ans);return 0;
}

宝石猎人 51Nod - 1455相关推荐

  1. 宝石猎人 51Nod - 1455 记忆化搜索

    苏塞克岛是一个有着30001个小岛的群岛,这些小岛沿着一条直线均匀间隔分布,从西到东编号为0到30000.众所周知,这些岛上有很多宝石,在苏塞克岛上总共有n颗宝石,并且第i颗宝石位于岛 pi上. 小法 ...

  2. 51nod 1455 宝石猎人(记忆化搜索)

    1455 宝石猎人 题目来源:  CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 40  难度:4级算法题  收藏  关注 苏塞克岛是一个有着30001个小岛的群岛, ...

  3. 51nod 1455:宝石猎人

    1455 宝石猎人 题目来源:  CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 40  难度:4级算法题  收藏  关注 苏塞克岛是一个有着30001个小岛的群岛, ...

  4. 【51Nod四级题】宝石猎人

    宝石猎人 链接: https://www.51nod.com/Challenge/Problem.html#problemId=1455 题意: 苏塞克岛是一个有着30001个小岛的群岛,这些小岛沿着 ...

  5. 51nod1455 宝石猎人

    51nod 宝石猎人 2.0 2.0 2.0 秒/ 131 , 072.0 131,072.0 131,072.0 KB/ 40 40 40 分 / 4 4 4级题 食物(题目) 苏塞克岛是一个有着 ...

  6. [51nod1455]宝石猎人——DP

    1455 宝石猎人 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 苏塞克岛是一个有着30001个小岛的群岛,这些小岛 ...

  7. 51nod1455 宝石猎人【dp---状态转移】

    1455 宝石猎人 题目来源:  CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 40  难度:4级算法题  收藏  关注 苏塞克岛是一个有着30001个小岛的群岛, ...

  8. 51nod 1455 宝石猎人

    苏塞克岛是一个有着30001个小岛的群岛,这些小岛沿着一条直线均匀间隔分布,从西到东编号为0到30000.众所周知,这些岛上有很多宝石,在苏塞克岛上总共有n颗宝石,并且第i颗宝石位于岛 pi上. 小法 ...

  9. 51nod 1455 宝石猎人(dp or 记忆化搜索)

    苏塞克岛是一个有着30001个小岛的群岛,这些小岛沿着一条直线均匀间隔分布,从西到东编号为0到30000.众所周知,这些岛上有很多宝石,在苏塞克岛上总共有n颗宝石,并且第i颗宝石位于岛 pi上. 小法 ...

最新文章

  1. BackboneFast
  2. 2010年十大投资机会(转载)
  3. POJ1083 Moving Tables
  4. java参数注解pam_java – 使用xmlelement defaultvalue注释指定默认值的简单方法
  5. 数据采集之解析Mysql的binlog日志发送至Kafka实时消费(转:https://blog.csdn.net/liguohuabigdata/article/details/79472777)
  6. 广文艺计算机综合美术,广东文艺职业学院2018年第二批合同制人员招聘专业技能考核和试讲题目...
  7. python语言key_Python语言学习:字典常用的方法
  8. python progressbar print_python print 进度条的例子
  9. Linux基础:linux网络接口
  10. kangle 3.4.8 发布,国产开源 Web 服务器
  11. mysql基础之mariadb集群主从架构
  12. 4.卷1(套接字联网API)---基本TCP套接字编程
  13. excel中vlookup函数的使用方法_Excel中Vlookup——从入门到放弃
  14. 神经网络物联网未来发展趋势怎么样
  15. 关闭Dell笔记本触摸板
  16. c语言怎么写最小公倍数的函数,c语言最小公倍数怎么求
  17. 两台计算机传输文件速度,一根网线,两台电脑,超高速传输文件
  18. 计算机鼠标右键的主要应用是什么原因,win7电脑桌面鼠标右键功能和作用|win7 64位桌面右键没反应,反应非常慢...
  19. MT6737/MT6737T/MT6737M处理器功能介绍,MT6737芯片资料下载
  20. 在ubuntu19.04中安装flash插件

热门文章

  1. php删除sql server 2008,MSSQL_SQL Server2008 数据库误删除数据的恢复方法分享,SQL Server中误删除数据的恢复本 - phpStudy...
  2. 深度学习在医学影像的创新
  3. 《OFFICE高级应用》课程学习网站的设计与实现
  4. 有孚专有存储云助力传统媒体实现云上转型
  5. 关于有音频中去除人声失败的问题
  6. 堡垒机JumpServer搭建与使用
  7. JavaScript基础: ES6新特性---Symbol
  8. 怎么把mpg格式转换成mp4?
  9. Android N版本 三指截屏
  10. 计算机学院 德育计划,信息技术教师德育工作计划范文