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