您的位置:首页 > 其它

POJ 1922 Ride to School 题解

2017-04-20 14:23 411 查看

题意

有若干人从起点以不同时间出发以不同但恒定的速度骑自行车前往距离起点4.5km的终点,有另一个人从起点开始采取跟随最快的人的车跟骑,在路上如果遇到更快的车超过他现在跟的车他会选择更换跟随对象,换成这个更快的车,问经过多少秒,他可以到达终点

思路

如果出发时间为负,显然不会是跟骑的人最后跟的车,如果这辆车更快,跟骑的人根本不可能遇到它,如果它更慢,即使跟骑的人遇到也不会换车。而跟骑的人又会不断跟随遇到的更快的车,那他最后一定是跟随出发时间非负且最快到达终点的车到达。所以我们只需考虑出发时间非负的车到达终点的时间,取最小值即可。

代码

#include <cstdio>
#include <cmath>
int main()
{
int N,V,T,ans;
while(1)
{
scanf("%d",&N);
ans=0x7fffffff;
if(N==0)
break;
for(int i=0;i<N;i++)
{
scanf("%d%d",&V,&T);
if(T>=0&&ceil(4.5*3600/V)+T<ans)
ans=ceil(4.5*3600/V)+T;
}
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: