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

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

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

題目
略,請直接看原題。ios

前言

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

@copyright petjelinux 版權全部
觀看更多正版原始文章請至petjelinux的blog

想法

若是坐車\(k\)千米加上修理比走路\(k\)千米還要慢,那麼我們只須要先坐車\(k\)千米,然後不要修,直接走路走徹底程。
若是坐車\(k\)千米加上修理比走路\(k\)千米還要快,那麼我們只剩下兩種選項:spa

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

要記得考慮\(d<k\)的情況。code

程式碼:

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看
Submissionblog

相關文章
相關標籤/搜索