NOIP2005过河(青蛙过河)
题目传送门
这道题主要是因为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过河(青蛙过河)相关推荐
- Python解题 - NOIP2005 青蛙过河
本题解经过热心网友的指正,已经更新,问哥为之前的武断向大家道歉.此题解仅供参考,感谢大家的监督与建议. 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很 ...
- 两个各四只青蛙过河java_趣味算法——青蛙过河(JAVA)
/*** 青蛙过河 *@authorrubekid **/ public classRiverFrog {public static final int LEFT_FROG = -1;public s ...
- nyoj-619 青蛙过河
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=619 题目大意:就是有一条宽为L的河,河上有n个石头,每个石头与河对岸的距离为a[i],然 ...
- P1244 青蛙过河
P1244 青蛙过河 题目描述 有一条河,左边一个石墩(A区)上有编号为1,2,3,4,-,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图所示.n只青蛙要过 ...
- 【递归与递推】青蛙过河
题目描述 有一条河,左边一个石墩(A区)上有编号为1,2,3,4,-,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图2-5所示.n只青蛙要过河(从左岸石墩A ...
- 青蛙过河 猴子爬山 兔子繁殖 开宝箱2 找气球 指针函数 铺地砖
Problem A: 青蛙过河 Description 一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,面积只容得下一只青蛙落脚,同样右岸也有一石柱R,面积也只容得下一只青蛙落脚.有一队青 ...
- 2022-01-19:青蛙过河。 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列
2022-01-19:青蛙过河. 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子,但是不可以跳入水中. 给你石子的位置列 ...
- html5青蛙过河,[推荐]===PS4上的本地多人游戏推荐心得===家庭聚会,欢乐时光 (持续更新)...
本帖最后由 everyer 于 2018-11-25 22:22 编辑 更新: =============经典派对小游戏合集============= Arcade Islands: Volume O ...
- 1220 -- 青蛙过河
青蛙过河 Time Limit:1000MS Memory Limit:65536K Total Submit:120 Accepted:27 Description 一群青蛙在河边,他们想过河.可 ...
- 两个各四只青蛙过河java_Java实现 LeetCode 403 青蛙过河
403. 青蛙过河 一只青蛙想要过河. 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有). 青蛙可以跳上石头,但是不可以跳入水中. 给定石子的位置列表(用单元格序 ...
最新文章
- 程序员的魔法——用Masking GAN让100,000人都露出灿烂笑容
- ASP.NET-关于Global.asax的作用
- 「傻瓜」才能写出好代码!
- linux怎样安装麒麟双系统,U盘启动中标麒麟V6双系统安装教程
- 平时常见的音频文件格式有哪些呢?
- 加解密算法 之base64 原理
- C语言字符串输出中文乱码
- RecycleView多布局的实现
- 计算机病毒无法破坏压缩文件,求解压缩文件拒绝访问是怎么回事?
- FaaS(功能即服务)
- 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行
- [BZOJ1974][SDOI2010]代码拍卖会[插板法]
- autoware.auto安装教程
- Android 实现推送功能
- numpy之多维数组
- (嵌入式)关于arm中的存储控制器
- 【操作系统】《计算机的心智:操作系统之哲学管理》读书笔记
- 云计算机可以玩游戏吗,4G网络可以流畅使用云电脑玩游戏吗
- 软件测试周刊(第02期):测试不背锅指南、搞垮领导..
- python peewee库 和 sqlite3的使用
热门文章
- 【Linux/Ubuntu】linux环境下如何读取doc文件(不是docx文件!!!)
- 有什么CAD迷你看图的方法?怎么查看CAD图纸?
- OpenCV-C++选择、提取感兴趣区域(ROI区域)【附用鼠标选取ROI区域的代码】
- OSPF Stub区域与NSSA区域
- 【入门】精灵宝可梦数据集分析
- 车险保单在线OCR识别,字段很全,可以可以
- if函数三个条件怎么填c语言,if同时满足三个条件怎么写
- 浅谈幼儿园计算机论文,【一等奖 论文】凌姗:《浅谈幼儿园生成活动存在的问题及建议》...
- AD18输出BOM表
- Ubuntu18.04+Ros Melodic安装Moveit