题目链接:http://poj.org/problem?id=1922
题意简单讲下,有个男的比较怪,喜欢跟着快的走,然后给出,几个人的速度和出发时间,求出这个男的到的时间;
其实题意很容易想到算法,那么这个男的必然和第一个到达的同时到达,当然要去掉时间为负数,提前出发的人。
这个题不难,主要是纠结了两个问题,
一个是,当是时间为不为整数的时候应该,统一取大于大的那个整数,但是自动转换会取小的,我利用了一个简单的算法,想了半天
1 2 3 4 5 6 7 8
| int temp=min; if(temp==min) cout<<temp<<endl; else cout<<temp+1<<endl;
|
1 2 3
| cout<<ceil(min)<<endl;
|
综合来说题目不难,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std;
int main() { int n,i,t,v; double ts,min; while(cin>>n&&n;) { min=4500*3.6; for(i=0;i<n;i++) { scanf("%d%d",&v;,&t;); if(t>=0) { ts=4500*3.6/v+t; if(ts<min) min=ts; } } int temp=min; if(temp==min) cout<<temp<<endl; else cout<<temp+1<<endl; } }
|