洛谷P5613 黑蚊子多

题目背景
性★感☆大★草 在☆线★开☆门
定☆数★一☆零 实★则☆虚★高
加★速☆转★圈 开☆幕★雷☆击
疯☆狂★交☆互 劲★爆☆咚★咚
黑★蚊☆子★多 邀☆您★来☆爽
超☆越★模☆式 直★角☆旋★钮
山★东☆卫★星 马☆上★联☆动
变☆成★十☆加 已★经☆爽★爆

题目描述
Hikari 的面前有 n(1\leq n\leq 1000)n(1≤n≤1000) 级台阶,每 1s1s 她可以向上跳 m(1\leq m\leq n)m(1≤m≤n) 级台阶。(不在中间的台阶上停留)

台阶上有 k(k\leq 10)k(k≤10) 个特殊的平台 a_ia
i

,Hikari 在该平台 停留 时会使得 mm 增加 11。

请问 Hikari 到达台阶顶部花费的时间。

输入格式
共 22 行。

第 11 行输入 33 个非负整数 n,m,kn,m,k。

第 22 行输入 kk 个正整数,第 ii 个正整数表示 a_ia
i

,保证输入的 a_ia
i

单调递增。

输出格式
共 11 行,输出 11 个正整数表示花费的时间。

输入输出样例
输入 #1复制
10 5 0
输出 #1复制
2
输入 #2复制
31 4 2
8 13
输出 #2复制
6
说明/提示
子任务
对于 60%60% 的数据,k=0k=0。

对于 100%100% 的数据,1\leq m\leq n\leq 10001≤m≤n≤1000,k\leq 10k≤10。

题目来源
MtOI2019 Extra Round T1

出题人:disangan233
上代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,k,ans,x,a[1100];
int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=k;i++)
	{
		scanf("%d",&x);
		a[x]=1;
	}//读入,把哪些点m会加一标记出来
	x=0;//从零开始
	while(x<n)//还没有走到n
	{
		x+=m;//往前走
		if(a[x])m++;//如果走到x时m应该加一,那么m++
		ans++;//步数加一
	} 
	cout<<ans;//输出步数
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值