封鎖陽光大學 洛谷1330 bfs

2021-07-26 10:42:18 字數 1959 閱讀 9459

曹是乙隻愛刷街的老曹,暑假期間,他每天都歡快地在陽光大學的校園裡刷街。河蟹看到歡快的曹,感到不爽。河蟹決定封鎖陽光大學,不讓曹刷街。

陽光大學的校園是一張由n個點構成的無向圖,n個點之間由m條道路連線。每只河蟹可以對乙個點進行封鎖,當某個點被封鎖後,與這個點相連的道路就被封鎖了,曹就無法在與這些道路上刷街了。非常悲劇的一點是,河蟹是一種不和諧的生物,當兩隻河蟹封鎖了相鄰的兩個點時,他們會發生衝突。

詢問:最少需要多少只河蟹,可以封鎖所有道路並且不發生衝突。

第一行:兩個整數n,m

接下來m行:每行兩個整數a,b,表示點a到點b之間有道路相連。

僅一行:如果河蟹無法封鎖所有道路,則輸出「impossible」,否則輸出乙個整數,表示最少需要多少只河蟹。

1<=n<=10000,1<=m<=100000,任意兩點之間最多有一條道路。

首先想到相鄰的點染不同顏色,是否能只用兩種顏色完成整張圖的染色

如果不能就impossible,可以就選擇兩種顏色中少的那一種

需要注意的是整張圖並不完全聯通,並且dfs可以神奇的a掉

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define debug puts("-----")

#define rep(i, st, ed) for (int i = st; i <= ed; i += 1)

#define drp(i, st, ed) for (int i = st; i >= ed; i -= 1)

#define fill(x, t) memset(x, t, sizeof(x))

#define min(x, y) x#define max(x, y) x>y?x:y

#define pi (acos(-1.0))

#define eps (1e-8)

#define inf (1<<30)

#define ll long long

#define db double

#define ld long double

#define n 20001

#define e n * 16 + 1

#define l 255

using

namespace

std;

struct edgee[e];

int dep[n], ind[n], tot[2], ls[n];

int edgecnt;

inline

int read()

ch = getchar();

}while (ch <= '9' && ch >= '0')

return x * v;

}inline

int addedge(int &cnt, int x, int y, int w = 0); ls[x] = cnt;

return0;}

inline

int bfs(int st)}}

return min(tot[0], tot[1]);

}int main(void)

int ans = 0;

rep(i, 1, n)

}rep(st, 1, n)}}

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

return

0;}

封鎖陽光大學(洛谷 1330)

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

洛谷P1330 封鎖陽光大學 BFS

給出乙個圖 不一定聯通 每條邊的兩個端點都僅能選擇乙個點。求最小選擇數。將這個圖黑白染色,對於每個連通圖,選擇更少的那種顏色並求和。搜尋的方法有很多,我用的是廣搜。include include include define n 10100 define m 100100 using namespa...

洛谷P1330 封鎖陽光大學 BFS

給出乙個圖 不一定聯通 每條邊的兩個端點都僅能選擇乙個點。求最小選擇數。將這個圖黑白染色,對於每個連通圖,選擇更少的那種顏色並求和。搜尋的方法有很多,我用的是廣搜。include include include define n 10100 define m 100100 using namespa...