bzoj
洛谷二分答案是顯然的。
算一下包含所有的點的最小矩形的範圍\((x1,y1)\)
\((x2,y2)\)
貪心思考一下肯定是把塑料薄膜其中乙個角放在此矩形上的
然後\(dfs\)判一下即可
#include #include #include #include #include #include using namespace std;
inline int gi()
void chkmax(int &x, int y)
void chkmin(int &x, int y)
const int max_n = 20005;
int n, vis[max_n];
pairp[max_n];
#define x first
#define y second
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 1;
uncover(tot);
} return 0;
}bool check(int l)
int main ()
printf("%d\n", ans);
return 0;
}
bzoj1052 HAOI2007 覆蓋問題
一道簡單的二分 貪心,先找四個最大最小座標,以四個角中的乙個為左上角劃正方形,再找再劃,最後判斷剩下的點是否在乙個正方形內。ac code include include include include define ll long long using namespace std const ll...
1052 HAOI2007 覆蓋問題(貪心)
某人在山上種了n棵小樹苗。冬天來了,溫度急速下降,小樹苗脆弱得不堪一擊,於是樹主人想用一些塑料薄膜把這些小樹遮蓋起來,經過一番長久的思考,他決定用3個l l的正方形塑料薄膜將小樹遮起來。我們不妨將山建立乙個平面直角座標系,設第i棵小樹的座標為 xi,yi 3個l l的正方形的邊要求平行與座標軸,乙個...
BZOJ1052 BZOJ3760 覆蓋問題
原題位址 先說自己的逗比方法 二分答案,把所有點用乙個最小的矩形 框 起來,易證矩形的其中乙個端點是最優解中正方形的乙個端點,然後列舉四個端點後遞迴處理,差不多了 然後 olz黃學長的o n 做法 ac code include include include using namespace std...