题目传送门

这道题主要是因为L长度最大可以为1e9 而石子却最多只有100个 这样就浪费了很多时间空间 所以我们压缩一波路径就可以了 剩余的就是枚举每个点以及i-y到i-x的dp了

这里要说一句为什么要mod90 因为1~9两两的最大公倍数是90

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int M=100007;
int read(){int ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
int f[M],s[155],L,x,y,m,sz[M];
int main()
{memset(f,127,sizeof(f));L=read(); x=read(); y=read(); m=read();for(int i=1;i<=m;i++) s[i]=read();if(x==y){int ans=0;for(int i=1;i<=m;i++) if(s[i]%x==0) ans++;printf("%d\n",ans);return 0;}s[m+1]=L;sort(s+1,s+m+2);for(int i=0;i<=m;i++) if(s[i+1]-s[i]>90) s[i+1]=s[i]+(s[i+1]-s[i])%90;for(int i=1;i<=m;i++) sz[s[i]]=1;for(int i=x;i<=y;i++) f[i]=(sz[i])?1:0;for(int i=2*x;i<=s[m+1];i++){for(int j=x;j<=y;j++) if(j<=i) f[i]=min(f[i],f[i-j]);if(sz[i]) f[i]++;}printf("%d\n",f[s[m+1]]);return 0;
}

View Code

转载于:https://www.cnblogs.com/lyzuikeai/p/7107189.html

NOIP2005过河(青蛙过河)相关推荐

  1. Python解题 - NOIP2005 青蛙过河

    本题解经过热心网友的指正,已经更新,问哥为之前的武断向大家道歉.此题解仅供参考,感谢大家的监督与建议. 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很 ...

  2. 两个各四只青蛙过河java_趣味算法——青蛙过河(JAVA)

    /*** 青蛙过河 *@authorrubekid **/ public classRiverFrog {public static final int LEFT_FROG = -1;public s ...

  3. nyoj-619 青蛙过河

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=619 题目大意:就是有一条宽为L的河,河上有n个石头,每个石头与河对岸的距离为a[i],然 ...

  4. P1244 青蛙过河

    P1244 青蛙过河 题目描述 有一条河,左边一个石墩(A区)上有编号为1,2,3,4,-,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图所示.n只青蛙要过 ...

  5. 【递归与递推】青蛙过河

    题目描述 有一条河,左边一个石墩(A区)上有编号为1,2,3,4,-,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图2-5所示.n只青蛙要过河(从左岸石墩A ...

  6. 青蛙过河 猴子爬山 兔子繁殖 开宝箱2 找气球 指针函数 铺地砖

    Problem A: 青蛙过河 Description 一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,面积只容得下一只青蛙落脚,同样右岸也有一石柱R,面积也只容得下一只青蛙落脚.有一队青 ...

  7. 2022-01-19:青蛙过河。 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列

    2022-01-19:青蛙过河. 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子,但是不可以跳入水中. 给你石子的位置列 ...

  8. html5青蛙过河,[推荐]===PS4上的本地多人游戏推荐心得===家庭聚会,欢乐时光 (持续更新)...

    本帖最后由 everyer 于 2018-11-25 22:22 编辑 更新: =============经典派对小游戏合集============= Arcade Islands: Volume O ...

  9. 1220 -- 青蛙过河

    青蛙过河 Time Limit:1000MS  Memory Limit:65536K Total Submit:120 Accepted:27 Description 一群青蛙在河边,他们想过河.可 ...

  10. 两个各四只青蛙过河java_Java实现 LeetCode 403 青蛙过河

    403. 青蛙过河 一只青蛙想要过河. 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有). 青蛙可以跳上石头,但是不可以跳入水中. 给定石子的位置列表(用单元格序 ...

最新文章

  1. 程序员的魔法——用Masking GAN让100,000人都露出灿烂笑容
  2. ASP.NET-关于Global.asax的作用
  3. 「傻瓜」才能写出好代码!
  4. linux怎样安装麒麟双系统,U盘启动中标麒麟V6双系统安装教程
  5. 平时常见的音频文件格式有哪些呢?
  6. 加解密算法 之base64 原理
  7. C语言字符串输出中文乱码
  8. RecycleView多布局的实现
  9. 计算机病毒无法破坏压缩文件,求解压缩文件拒绝访问是怎么回事?
  10. FaaS(功能即服务)
  11. 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
  12. [BZOJ1974][SDOI2010]代码拍卖会[插板法]
  13. autoware.auto安装教程
  14. Android 实现推送功能
  15. numpy之多维数组
  16. (嵌入式)关于arm中的存储控制器
  17. 【操作系统】《计算机的心智:操作系统之哲学管理》读书笔记
  18. 云计算机可以玩游戏吗,4G网络可以流畅使用云电脑玩游戏吗
  19. 软件测试周刊(第02期):测试不背锅指南、搞垮领导..
  20. python peewee库 和 sqlite3的使用

热门文章

  1. 【Linux/Ubuntu】linux环境下如何读取doc文件(不是docx文件!!!)
  2. 有什么CAD迷你看图的方法?怎么查看CAD图纸?
  3. OpenCV-C++选择、提取感兴趣区域(ROI区域)【附用鼠标选取ROI区域的代码】
  4. OSPF Stub区域与NSSA区域
  5. 【入门】精灵宝可梦数据集分析
  6. 车险保单在线OCR识别,字段很全,可以可以
  7. if函数三个条件怎么填c语言,if同时满足三个条件怎么写
  8. 浅谈幼儿园计算机论文,【一等奖 论文】凌姗:《浅谈幼儿园生成活动存在的问题及建议》...
  9. AD18输出BOM表
  10. Ubuntu18.04+Ros Melodic安装Moveit