二分 挖金礦

2021-07-24 09:50:08 字數 646 閱讀 2868

答案,保留4位小數

sample input

4 3

4 3 3

5 1 6

2 6 1

3 2 9

sample output

4.4286

data constraint

n*m<=100000

solution :

首先看 n*m=100000

那麼資料很明顯最多支援(mn)logn嘛

然後就考慮二分答案嘛。

因為直接找最優值的話,不知道其他列的情況,二分是最好的選擇了~。

然後就是怎麼check 答案。

對於當前的乙個答案 ans

假設 第i列選了 h[i]個

f[i][j] 表示 第i列選了j個的字首和。

對於每任意一列i,列舉j

找出 ( ans *h[i])- f[i][h[i]] 的最大值 max[i]

在把sum 和ans比較 即可判斷ans是否合法。

問題解決。

動態規劃 挖金礦

有乙個國家發現了5座金礦,每座金礦的 儲量不同,需要參與挖掘的工人數也不同。參與挖礦工人的總數是10人。每座金礦要麼全挖,要麼不挖,不能派出一半人挖取一半金礦。要求用程式求解出,要想得到盡可能多的 應該選擇挖取哪幾座金礦?500金 5人 200 3 300 4 350 3 400 5 總容量 10人...

腦洞系列 XJOJ 挖金礦

這個題目,在考場上我沒有做不出來,說實話,開始的時候,我都沒看出來這是個二分!這個題目因為資料範圍給的很難受 n m 而不是n m 所以我們在求每一列的字首和的時候,我們可以抽象成一維來做。我們設答案為ans,ans sum h sum為挖過的所有金礦的價值之和,h為挖過的金礦的個數 sum ans...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...