曹是乙隻愛刷街的老曹,暑假期間,他每天都歡快地在陽光大學的校園裡刷街。河蟹看到歡快的曹,感到不爽。河蟹決定封鎖陽光大學,不讓曹刷街。
陽光大學的校園是一張由n個點構成的無向圖,n個點之間由m條道路連線。每只河蟹可以對乙個點進行封鎖,當某個點被封鎖後,與這個點相連的道路就被封鎖了,曹就無法在與這些道路上刷街了。非常悲劇的一點是,河蟹是一種不和諧的生物,當兩隻河蟹封鎖了相鄰的兩個點時,他們會發生衝突。
詢問:最少需要多少只河蟹,可以封鎖所有道路並且不發生衝突。
輸入格式:
第一行:兩個整數n,m
接下來m行:每行兩個整數a,b,表示點a到點b之間有道路相連。
輸出格式:
僅一行:如果河蟹無法封鎖所有道路,則輸出「impossible」,否則輸出乙個整數,表示最少需要多少只河蟹。
輸入樣例#1:
【輸入樣例1】3 31 2
1 32 3
【輸入樣例2】
3 21 2
2 3
輸出樣例#1:
【輸出樣例1】impossible
【輸出樣例2】
1
【資料規模】
1<=n<=10000,1<=m<=100000,任意兩點之間最多有一條道路。
黑白染色,搜到下乙個節點與本節點相同時說明無法完成
注意有多個聯通塊
#include#include#include
using
namespace
std;
#define n 100003
struct
nodeedge[n*10
];int head[n],n,m;int num=0
;int
vis[n];
void add_edge(int x,int
y)int
ans,ans1,ans2;
void dfs(int
x)
if(!vis[v])
}}int
main()
for(int i=1;i<=n;i++)
}printf(
"%d\n
",ans);
return0;
}
luogu P1330 封鎖陽光大學
emmmm 下午被dtx大佬強迫 用詞似乎不當?去做 他tql!然鵝最終還是他給我講的www 所以這其實是一道圖的遍歷 但是我有搜尋恐懼症啊啊啊看到搜尋整個人都慌了 而且看題面 這道題還有乙個仔細想想就能想出來的點 就是每一條邊的兩個點,一定是乙個有河蟹,乙個沒有的 所以標記一下就比較好判斷了 然後...
luogu P1330 封鎖陽光大學
曹是乙隻愛刷街的老曹,暑假期間,他每天都歡快地在陽光大學的校園裡刷街。河蟹看到歡快的曹,感到不爽。河蟹決定封鎖陽光大學,不讓曹刷街。陽光大學的校園是一張由n個點構成的無向圖,n個點之間由m條道路連線。每只河蟹可以對乙個點進行封鎖,當某個點被封鎖後,與這個點相連的道路就被封鎖了,曹就無法在與這些道路上...
luogu P1330 封鎖陽光大學 題解
曹是乙隻愛刷街的老曹,暑假期間,他每天都歡快地在陽光大學的校園裡刷街。河蟹看到歡快的曹,感到不爽。河蟹決定封鎖陽光大學,不讓曹刷街。陽光大學的校園是一張由n個點構成的無向圖,n個點之間由m條道路連線。每只河蟹可以對乙個點進行封鎖,當某個點被封鎖後,與這個點相連的道路就被封鎖了,曹就無法在與這些道路上...