POJ - 1922 Ride to School(思维+贪心)
生活随笔
收集整理的這篇文章主要介紹了
POJ - 1922 Ride to School(思维+贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:起點與終點相距4.5千米,主人公上學喜歡跟在別人后面騎自行車,每當有人騎自行車超過主人公時,他會跟在速度較快的人后面繼續走,我們需要計算主人公到達學校的最小時間
題目分析:經過分析我們可以發現,主人公來回折騰換人跟著,肯定不是最優解,最優解是一開始就跟著第一個到達學校的人后面,很簡單,因為如果你一開始跟在一個比較慢的人后面,騎到一半最優解的人出現了,我們肯定繼續跟在最優解一直到學校了,那么這樣子和我們一開始等在起點,然后一路都跟著最優解其實是沒有任何區別的,所以我們可以從n個人中選出第一個到達學校的人,然后計算一下他的時間和他出現的時間就可以了。注意一下,如果出現的時間是負數,說明人家早就走了,我們直接跳過即可。
記得向上取整,上代碼:
#include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cstring> #include<algorithm> #include<stack> #include<queue> #include<map> #include<cmath> #include<sstream> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e4+100;int main() { // freopen("input.txt","r",stdin);int n;while(scanf("%d",&n)!=EOF&&n){int ans=inf;while(n--){int v,t;scanf("%d%d",&v,&t);if(t<0)continue;ans=min(ans,int(t+ceil(4.5/(v/3600.0))));}printf("%d\n",ans);}return 0; }?
總結
以上是生活随笔為你收集整理的POJ - 1922 Ride to School(思维+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces - 475B St
- 下一篇: CodeForces - 1095C P