1 条题解
-
0
解析
题目大意
从 米开始走,每一秒可以选择提升或下降原速度 米每秒或者不变速,且满足速度不会小于零。现在要求跑到 米的时候速度不应超过 米每秒,问给出 种 ,走完全程的最小时间。
考查知识
本题考查模拟。
解析
对于每一种情况,我们可以定几个定量分别存储总时间、升速距离和减速距离,判断总距离是否达到目标(注意:如果跑的总距离不小心超过了目标 也是可以的,见样例解释),如果不达标则继续跑,跑的时候注意会不会超过速度限制 ,超过了就得要减速。
代码
#include<bits/stdc++.h> using namespace std; int k=0,n=0,x; int main() { cin>>k>>n; while(n--) { cin>>x; int output=0,speedup=0,speeddown=0,v=0; while(1) { v++; speedup+=v;//上升距离累计 output++; if(speedup+speeddown>=k)//检查累计距离是否达到目标 { cout<<output<<endl; break; } if(v>=x)//检查是否达到最大速度限制 { speeddown+=v;//下降距离累计 output++; if(speedup+speeddown>=k)//再次检查累计距离 { cout<<output<<endl; break; } } } } }
- 1
信息
- ID
- 6902
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 24
- 已通过
- 10
- 上传者