BZOJ1052 覆蓋問題(貪心)

2021-08-22 11:57:30 字數 984 閱讀 8885

bzoj

洛谷這題好神仙啊。

很明顯可以看出來要二分乙個邊長。

那麼如何ch

eck che

ck

呢? 我們把所有點用乙個最小矩形覆蓋,

那麼必定每個邊界上都至少存在乙個點,

但是我們有

4 4

個邊界,但是只有

3' role="presentation">3

3個矩形,

意味著至少有乙個矩形卡住了兩個邊界,

那麼我們遞迴處理,每次列舉卡在了哪個角上就好了。

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

#define max 20020

inline

int read()

int n;

struct nodep[max];

int vis[max];

bool

operator

<(node a,node b)

void cmax(int &x,int y)

void cover(int x1,int x2,int y1,int y2,int id)

void uncover(int id)

bool dfs(int tot,int l)

else

if(dfs(tot+1,l))return

true;

uncover(tot);

}return

false;

}bool check(int l)

int main()

printf("%d\n",ret);

}

bzoj1052 覆蓋問題

先二分答案,容易發現一定有乙個正方形覆蓋在角上 即有兩條邊在最x的地方 否則4個最x的點一定無法覆蓋,然後暴力確定即可 1 include2 using namespace std 3struct ji8 a 20005 9 int n,vis 20005 10 void bj int lx,int...

bzoj1052覆蓋問題 二分 貪心

time limit 10 sec memory limit 162 mb submit 2446 solved 1131 submit status discuss 某人在山上種了n棵小樹苗。冬天來了,溫度急速下降,小樹苗脆弱得不堪一擊,於是樹主人想用一些塑料薄 膜把這些小樹遮蓋起來,經過一番長久...

暴搜 bzoj1052 覆蓋問題

問題 b 覆蓋問題 時間限制 1 sec 記憶體限制 256 mb 題目描述 description 某人在山上種了n棵小樹苗。冬天來了,溫度急速下降,小樹苗脆弱得不堪一擊,於是樹主人想用一些塑料薄 膜把這些小樹遮蓋起來,經過一番長久的思考,他決定用3個l l的正方形塑料薄膜將小樹遮起來。我們不妨將...