Codeforce 702 D. Road to Post Office 解析(思維)
今天我們來看看CF702D
題目連結
題目
略,請直接看原題。
前言
原本想說會不會也是要列式子解或者二分搜,沒想到意外的是思考非常簡單的一題
@copyright petjelinux 版權所有
觀看更多正版原始文章請至petjelinux的blog
觀看更多正版原始文章請至petjelinux的blog
想法
如果坐車(k)公里加上修理比走路(k)公里還要慢,那麼我們只需要先坐車(k)公里,然後不要修,直接走路走完全程。
如果坐車(k)公里加上修理比走路(k)公里還要快,那麼我們只剩下兩種選項:
- 坐車坐(k imeslfloorfrac{d}{k} floor)公里,而最後一次(k)公里坐完以後不要修車,剩下走路。
- 全程坐車。
要記得考慮(d<k)的情況。
程式碼:
ll d,k,a,b,t;
main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>d>>k>>a>>b>>t;
if(d<k){cout<<min(a*d,b*d)<<'
';return 0;}
if(a*k+t>=b*k)cout<<a*k+b*(d-k)<<'
';
else cout<<min(a*k*(d/k)+t*(d/k-1)+b*(d-k*(d/k)),a*k*(d/k)+t*(d/k)+a*(d-k*(d/k)))<<'
';
return 0;
}
標頭、模板請點Submission看
Submission