腦洞系列 XJOJ 挖金礦

2021-07-24 11:56:31 字數 761 閱讀 3977

這個題目,在考場上我沒有做不出來,說實話,開始的時候,我都沒看出來這是個二分!這個題目因為資料範圍給的很難受(n*m<=?,而不是n<=…&&m<=…),所以我們在求每一列的字首和的時候,我們可以抽象成一維來做。

我們設答案為ans,ans=sum/h(sum為挖過的所有金礦的價值之和,h為挖過的金礦的個數)->sum-ans*h=0,基於這個式子,我們可以二分答案,在每一列取max,使得整個的答案是最優的。不斷進行二分,這樣就可以得出答案。

**如下:

#include

#include

#include

using

namespace

std;

const

int maxn=200005;

int num[maxn];

long

long sum[maxn];

int n,h,k;

bool check(int mid)

if(s>=0)

return

true;

else

return

false;

}int main()

while(r-l>0.000001)

printf("%.4lf\n",mid);

return

0;}

開啟你的腦洞

我的大學是在北京師範大學讀的,當時讀的乙個叫做 勵耘實驗班 的專業 現在已經取消了 美其名曰第一年進行通識教育,第二年選專業。我最終選擇了計算機專業,並且有幸和一群不同專業的室友一起生活了四年。其中乙個室友選了 數字 專業,他在專業學習過程中,需要每天看各種電影,分析各種電影片段的拍攝手法。那個時候...

Javascript的腦洞(一)

無窮大的數 var a 12 0 if a infinity 既然js的變數實際都是某種引用 存放物件的位址 那麼a這個名字的背後可以存放任意東西,包括無窮大這個值。但是js在這裡直接違背了數學規律,讓0除的結果變成無窮大,真實腦洞大開!如果設計成nan值,也更好理解吧?undefined被定義 u...

腦洞 整體分塊 BSGS

ran 讓 ei 刷整體二分的題,並且丟給 ei 一道 zjoi2013 k大數查詢。但是 ei 並不想寫整體二分。也不想寫資料結構。於是一拍腦門,就有了這個奇怪的想法。大致思路 對於 c cc 先離散化,然後考慮乙個類似 bsgs 的找答案的過程 將從大到小的 c cc 分成 m sqrt m m...