P1330 封鎖陽光大學

2022-04-29 03:12:08 字數 989 閱讀 5404

依題意可知,在圖中的每一條邊有且只有乙個點被選中(阻止老曹刷街),那麼就可以對其採取二分圖染色,一條邊中:乙個點為黑色,另乙個點為白色;如果一條邊中的兩個端點的顏色相同,則說明無解,輸出:「 ipossible ";如果有解,就把白點的數目和黑點的數目取 min ,即為答案。

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define maxn 100100

intn,m,cnt,ans;

inthead[maxn],col[maxn],tot[maxn],vis[maxn];

struct

hht[maxn

<<1

];inline

intread()

while

(isdigit(ls))

return xs*kr;

}inline

void add(int nex,int

to)inline

bool dfs(int now,int c)//

c為1,染上白點;c為0,染上黑點;now要被染色的點

}return

true;}

intmain()

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

else ans+=min(tot[0],tot[1]);//

因為原圖不連通,要加上所有連通塊的答案。

} }

printf(

"%d\n

",ans);//輸出

return0;

}

P1330 封鎖陽光大學

曹是乙隻愛刷街的老曹,暑假期間,他每天都歡快地在陽光大學的校園裡刷街。河蟹看到歡快的曹,感到不爽。河蟹決定封鎖陽光大學,不讓曹刷街。陽光大學的校園是一張由n個點構成的無向圖,n個點之間由m條道路連線。每只河蟹可以對乙個點進行封鎖,當某個點被封鎖後,與這個點相連的道路就被封鎖了,曹就無法在與這些道路上...

P1330 封鎖陽光大學

曹是乙隻愛刷街的老曹,暑假期間,他每天都歡快地在陽光大學的校園裡刷街。河蟹看到歡快的曹,感到不爽。河蟹決定封鎖陽光大學,不讓曹刷街。陽光大學的校園是一張由n個點構成的無向圖,n個點之間由m條道路連線。每只河蟹可以對乙個點進行封鎖,當某個點被封鎖後,與這個點相連的道路就被封鎖了,曹就無法在與這些道路上...

P1330 封鎖陽光大學

兩個和諧河蟹不能在同一條邊的兩端。所以對於每條邊。只有乙個節點有和諧河蟹 所以說,我們可以將有和諧河蟹的看做一種顏色,或則是狀態。沒有河蟹看做另一種言顏色 這樣邊變成了二分圖染色 所以嗯 就可以dfs暴力染色,不過要注意。有可能有多個圖 include include includeusing na...