曾經遇到過類似的。紀念一下!這題同一時候也是 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()
bool input()
return true;
}void solve()
void cal() {
sort(nnum,nnum + n);
if(n == 1) {
cout<
poj2573Bridge(過橋問題)
鏈結 a,b為最快和次快 有兩種方式可以使c,d過橋 一是a與c一起走,a回來接d再與d一起走,一直到對岸人為0為止 而是 a與b一起走 a回來送燈 c與d一起走 b回來送燈 重複此過程。只剩2人時 直接過橋 3 人時 a回來送燈 ac走 a回來送燈 ab走 1 include 2 include3...
POJ 1011 經典搜尋
這道題 是 比較經典的 搜尋題。題意 給出一堆小木棍的長度,需要把它們拼成幾根相同的大棍子,求 這些大棍子的最短長度 分析 這道題主要使用,深度搜尋 遞迴,當然這裡用到多次剪枝,這對於減小時間複雜度很有效。include includeusing namespace std int stick 64...
poj1067 經典博弈問題
題意 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者...