bzoj 1082 柵欄(二分 DFS)

2021-08-09 20:09:50 字數 582 閱讀 2337

傳送門biu~

先排序,二分最多能得到多少木板,顯然要盡量選小的木板,當木材大小小於最小的木塊時丟棄。記錄當前丟棄的木材量,若加上mid塊木板 > 所有的木材 則不合法。

#includeusing namespace std;

int m,n,mid;

bool flag;

int a[55],sa,b[1005],ch[1005],sb[1005];

void dfs(int

now,int sum,int

left)

if(flag || now>n) return;

if(left+sb[mid]>sa) return;

int tmp=now,tmpnow=now,tmpsum=sum,tmpleft=left;

if(b[sum]==b[sum+1] && sum!=mid) tmp=ch[sum+1];

for(int i=tmp;i<=n;++i)

}}int main()

printf("%d",ans);

return 0;

}

柵欄 二分 dfs 貪心

農夫約翰打算建立乙個柵欄將他的牧場給圍起來,因此他需要一些特定規格的木材。於是農夫約翰到木材店購 買木材。可是木材店老闆說他這裡只剩下少部分大規格的木板了。不過約翰可以購買這些木板,然後切割成他所需 要的規格。而且約翰有一把神奇的鋸子,用它來鋸木板,不會產生任何損失,也就是說長度為10的木板可以切成...

柵欄的木料(二分 dfs)

題目描述 description 農民john準備建乙個柵欄來圍住他的牧場。他已經確定了柵欄的形狀,但是他在木料方面有些問題。當地的雜貨儲存商扔給john一些木板,而john必須從這些木板中找出盡可能多所需的木料。當然,john可以切木板。因此,乙個9英呎的木板可以切成乙個5英呎和乙個4英呎的木料 ...

bzoj1052 覆蓋問題 二分答案 dfs

題意 找到乙個最小邊長,使得以此為邊長 3 個正方形可以覆蓋平面上給定的一些點。華麗爆零 首先看到最小果斷想二分答案 然後我們證明乙個東西 首先,根據鴿巢原理,3 個正方形覆蓋由所有點構成的最小矩形一定有乙個正方形是壓著至少兩條邊的 然後不外乎兩種情況 1 壓的是對邊,那麼每個都在壓對邊,有乙個正方...