以前遇到過類似的,紀念一下!這題同時也是 ZOJ1877,經典的過橋問題 是有個博客講解的很好的
戳這裡
挺久以前,遇到過一個基本一樣的,那個題目只要求求出 最短時間即可,現在還有過橋的過程 也要輸出來,一樣的
最近也遇到過一個 類似的過河的,不過題意類似,是DP的, 記得是 CF295C
還記得當初做那道題目 鑽入牛角,首先1個人2個人3個人肯定不用說了,當人數大於4的時候,那時候 我想出的貪心策略是 最快的 帶最慢的過去,然後回來,再帶最慢的過去,當時WA到死,那題案例出的也好,後來發現 其實還有一種貪心策略在某種情況下 比這個好,就是 最快 次快的過去,然後最快的回來。然後最慢次慢的過去,然後次快的再回來,這兩個情況沒有絕對的誰優,所以 每次都比較一下,這樣題目就簡單多了,草稿紙一些 兩種方法的計算方式就出來了
假設最快a,次快b,次慢c,最慢d
那麼 第一種 d + a + c + a
第二種 b + a + d + b
很快就做出來了
int n; int nnum[1000 + 55]; void init() { memset(nnum,0,sizeof(nnum)); } bool input() { while(cin>>n) { for(int i=0;i>nnum[i]; return false; } return true; } void solve() { } void cal() { sort(nnum,nnum + n); if(n == 1) { cout<