D. Road to Post Office 解析(思維)

Codeforce 702 D. Road to Post Office 解析(思維)

今天我們來看看CF702D
題目連結

題目
略,請直接看原題。

前言

原本想說會不會也是要列式子解或者二分搜,沒想到意外的是思考非常簡單的一題

想法

如果坐車\(k\)公里加上修理比走路\(k\)公里還要慢,那麼我們只需要先坐車\(k\)公里,然後不要修,直接走路走完全程。
如果坐車\(k\)公里加上修理比走路\(k\)公里還要快,那麼我們只剩下兩種選項:

  1. 坐車坐\(k\times\lfloor\frac{d}{k}\rfloor\)公里,而最後一次\(k\)公里坐完以後不要修車,剩下走路。
  2. 全程坐車。

要記得考慮\(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)<<'\n';return 0;}
  if(a*k+t>=b*k)cout<<a*k+b*(d-k)<<'\n';
  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)))<<'\n';
  return 0;
}

標頭、模板請點Submission看
Submission

posted @ 2020-09-27 18:26  petjelinux  阅读(172)  评论(0编辑  收藏  举报