http://121.249.217.157/JudgeOnline/problem.php?id=1066

1066: 青蛙过河

时间限制: 1 Sec  内存限制: 64 MB
提交: 58  解决: 13
[提交][状态][讨论版]

题目描述

在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。
由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整数:
0,1,……,L(其中L是桥的长度)。
坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。
青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数(包括S,T)。
当青蛙跳到或跳过坐标为L的点时,就算青蛙已经跳出了独木桥。 
题目给出独木桥的长度L,青蛙跳跃的距离范围S,T,桥上石子的位置。
你的任务是确定青蛙要想过河,最少需要踩到的石子数。

输入

输入包含多组数据,每组数据第一行有一个正整数L(1 <= L <= 20000),表示独木桥的长度。
 
第二行有三个正整数S,T,M,分别表示青蛙一次跳跃的最小距离,最大距离,及桥上石子的个数,其中1 <= S <= T <= 10,1 <= M <= 100。
 
第三行有M个不同的正整数分别表示这M个石子在数轴上的位置(数据保证桥的起点和终点处没有石子)。
 
所有相邻的整数之间用一个空格隔开。输入以一个0结束。

输出

对每组数据输出一行,这一行只包括一个整数,表示青蛙过河最少需要踩到的石子数。


样例输入

10
2 3 5
2 3 5 6 7
10
5 5 1
1
0

样例输出

2
0

提示

 

来源

[提交][状态][讨论版]

 
한국어  中文  فارسی  English  ไทย
Anything about the Problems, Please Contact Admin:admin All Copyright Reserved 2010-2014 CoYouth Club Online Judge TEAM
GPL2.0 2003-2014 HUSTOJ Project TEAM
 #include<stdio.h>
#include<string.h>
const int MAXN=;
int flag[MAXN];
int dp[MAXN];
int main()
{
int L,s,t,n;
int a;
while(scanf("%d%d%d%d",&L,&s,&t,&n)!=EOF)
{
memset(flag,,sizeof(flag));
memset(dp,-,sizeof(dp));//初始化,-1为不能到达的
//dp[i]表示到底 i 点需要经过的最少石子数,-1表示不能到达
for(int i=; i<n; i++)
{
scanf("%d",&a);
flag[a]=;//有石子为1,否则为0
}
dp[]=;
for(int i=s; i<=L+t-; i++)//一定是有这个-1的
{
for(int j=i-t; j<=i-s; j++) // j 点跳到 i 点
{
if(j>=&&dp[j]!=-)//j 点能够跳到
{
if(dp[i]==-)dp[i]=dp[j]+flag[i]; //第一次 直 接 给 值
else if(dp[i]>dp[j]+flag[i]) dp[i]=dp[j]+flag[i];//找小的值 }
}
}
int res=;
for(int i=L; i<=L+t-; i++) //L 到 L+t-1 中最小的非 -1 值
{
if(dp[i]!=-&&dp[i]<res) res=dp[i];
}
printf("%d\n",res);
}
return ;
}

最新文章

  1. 了解JavaScript 对象属性的标签
  2. charset的获取方法
  3. Quartus ii 12.1软件破解之后编译原有的工程出现报警错误的解决办法
  4. paip.代码生成器数据源格式最佳实践
  5. logstash 发送zabbix告警
  6. ZZY的宠物
  7. quoit design(hdoj p1007)
  8. Servlet和JSP读书笔记(三)之Cookie
  9. Promise 对象
  10. Java实现二叉树的创建和遍历操作(有更新)
  11. File文件操作学习总结
  12. Linux 下配置Nginx,MySql,php-fpm开机启动
  13. docker centos7创建consul镜像以及用docker-compose启动镜像
  14. 2018年值得关注的10大JavaScript动画库
  15. IT的2017,面临数字生态系统新挑战,该怎么办?
  16. WPF编程,指定窗口图标、窗口标题,使得在运行状态下任务栏显示窗口图标的一种方法。
  17. Python-Analysis-Malware
  18. Sql实现PadLeft
  19. GC--垃圾收集器
  20. codeforces 261B Maxim and Restaurant(概率DP)

热门文章

  1. 2.Java对象创建
  2. php 正则获取html属性值
  3. IE下Debug BHO
  4. Device Tree Usage( DTS文件语法)
  5. Tomcat部署方式
  6. GridView CheckBox 全选
  7. Win7启动修复(Ubuntu删除后进入grub rescue的情况)
  8. Java EE 参考文档及sample
  9. C# async await 学习笔记2
  10. keil 的头文件 .