poj 3616 milking time
題目大意,farmer john 要給女主牛 擠奶了。擠奶時間 n (1 ≤ n ≤ 1,000,000) hours,注意bessie進了一間黑心企業,每次擠奶休息完r (1 ≤ r ≤ n)hours後,又可以擠。然後farmer john 有m個時間段,開始時間s,結束時間e,一旦開始就不能停下,直到擠完奶。在這些時間段裡可以給bessie擠奶,但每個時間段的效率不同,有個擠得多一點,有得少一點。現在你的任務是根據famer john的時間段,選擇搭配起來最有效率的時間段來讓bessie產奶最多。
一開始,我想根據bessie擠奶時間n來dp,定義dp[i]為第i個時刻裡,產奶最多。但是,tle後,發現n 能取 10^6,就算少一點,兩層迴圈鐵定超時了,只能換一種dp。
上網找解題報告,大家都是根據區間來dp。這樣可以大大減少列舉次數。
定義dp[i] 第i個區間裡,擠奶最多。
對區間按開始時間從小到大排序後,列舉i個區間,裡面列舉小於i的區間。如果i-1個區間裡的有某個區間的結束時間+休息時間 <= i區間的開始時間,比較。
定義乙個區間的結構,當乙個東西都多個屬性,可以定義乙個結構這樣便於管理。為了方便,順便過載小於運算子,這樣可以直接呼叫stl 的sort函式。
以下是個人認為寫得最好的解題報告,可能我理解力不行吧。不班門弄斧了:這個**有很多解題報告,個人認為寫得都很通俗易懂。
poj解題報告 1328
不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...
poj解題報告 2586
這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...
poj解題報告 2635
這題特別好理解,就是 坑啊。題意就是給乙個數,這個數是兩個大素數的積,再給出乙個數,如果最小的素數比給的數大,列印good,否則列印bad和最小的素數。這題用的方法是高精度求模 同餘模定理。還有素數打表,把10 6內的素數全部預打表,在求模時則列舉到小於l為止。注意打表不能只打到100w,要保證素數...