hdu 6080 度度熊保護村莊

2021-08-17 06:54:57 字數 1154 閱讀 3311

嘩啦啦村襲擊了喵哈哈村!

度度熊為了拯救喵哈哈村,帶著自己的夥伴去救援喵哈哈村去了!度度熊與夥伴們很快的就過來佔據了喵哈哈村的各個軍事要地,牢牢的守住了喵哈哈村。

但是度度熊發現,這是一場曠日持久的戰鬥,所以度度熊決定要以逸待勞,儲存盡量多的體力,去迎戰嘩啦啦村的戰士。

於是度度熊決定派盡量多的人去休息,但是同時也不能鬆懈對喵哈哈村的保護。

換句話而言,度度熊希望盡量多的人休息,而且存在乙個包圍圈由剩下的人組成,且能夠恰好的包圍住喵哈哈村的所有住房(包括邊界)。

請問最多能讓多少個人休息呢?

當時看這個題的時候,完全不會做-w-

於是今天重新看了一次

發現我會做啦!!這好像沒什麼好驕傲啊吧

我們認為地規定乙個方向,就是讓點都在有向線段的左邊

然後找最小環就可以了

code:

#include

#include

#include

#include

using namespace std;

const int max=1

<<28;

const int n=505;

int n,m;

int f[n][n];

struct qq

a[n],b[n];

int mul (qq x,qq y,qq z)

int main()

int cnt=0,cnt1=0;

for (int j=1;j<=n;j++)

if (cnt==0) f[u][i]=1;

else f[u][i]=max;

}/*for (int u=1;u<=m;u++)

*/for (int u=1;u<=m;u++)

for (int i=1;i<=m;i++)

/*for (int u=1;u<=m;u++)

*/int ans=max;

for (int u=1;u<=m;u++)

ans=min(ans,f[u][u]);

if (ans==max) printf("tot\n");

else

printf("%d\n",m-ans);

}return

0;}

百度之星度度熊保護村莊

比賽的時候並沒有做出這道題。於是在賽後決定更正一下 把度度熊和它的夥伴們當成黑點,所有的村莊當成紅點 考慮對所有的黑點建圖 o n 暴力列舉所有的黑點點對,對於每個點對 a,b o n 檢測所有紅點 如果所有的紅點都在點對 a,b a b 的右側,則a到b連線一條長度為1的單向邊 如果所有的紅點都在...

HDU 6375 度度熊學佇列

danshlem description 度度熊正在學習雙端佇列,他對其翻轉和合併產生了很大的興趣。初始時有 n 個空的雙端佇列 編號為 1 到 n 你要支援度度熊的 q 次操作。1 u w val 在編號為 u 的佇列裡加入乙個權值為 val 的元素。w 0 表示加在最前面,w 1 表示加在最後面...

hdu6376 度度熊剪紙條

度度熊有一張紙條和一把剪刀。紙條上依次寫著 n 個數字,數字只可能是 0 或者 1。度度熊想在紙條上剪 k 刀 每一刀只能剪在數字和數字之間 這樣就形成了 k 1 段。他再把這 k 1 段按一定的順序重新拼起來。不同的剪和接的方案,可能會得到不同的結果。度度熊好奇的是,字首 1 的數量最多能是多少。...