专栏文章
题解:P13165 [GCJ 2017 #1B] Steed 2: Cruise Control
P13165题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mioxvn9e
- 此快照首次捕获于
- 2025/12/03 02:56 3 个月前
- 此快照最后确认于
- 2025/12/03 02:56 3 个月前
看题
A 一串字母这人要骑马从 公里跑到 公里,她前面还有很多速度不一的马,A 一串字母必须匀速到达终点,不能超过任何一匹前方的马。
怎么保证不会超过呢?我们要让 A 一串字母到达终点的时间 ≥ 前面的所有马到达终点的时间中的最大值。
如果 A 一串字母比其它马提前到了终点,那就说明她在中途超过了某匹更慢的马。
怎么做?
A 一串字母前面的每匹马从自己当前位置 以最大速度 跑到终点 ,需要的时间是 。
这些马都会按自己的速度走,谁追上别人就降速,但是不用考虑减速的情况,你可以理解为追上前面的马和被追的马是一只马,会同时到达终点,所以只要知道每匹马自己单独跑到终点要多久就够了。设 为其他马到达终点的时间,那么 A 一串字母的最大合法速度为 ,能保证她在最长的那个时间内刚好到达终点,不超过任何马。
上代码!
CPP#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)
ll t,n,m,T,d;
int main(){
cin>>t;
T=t;
while(t--){
cin>>d>>n;
ld maxx=0;
foru(i,0,n-1){
ld k,s;
cin>>k>>s;
maxx=max(maxx,(d-k)/s);
}
cout<<dot(6)<<"Case #"<<T-t<<": "<<d/maxx<<endl;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...