題意:給n個頂點,m條邊,問每次刪除乙個點會不會破壞圖的連通性。
思路:用dfs/bfs求圖的連通分量個數,每次求出刪除點之前和之後的連通分量數cnt、cnt1,若cnt1>cnt+1,則破壞了連通性;否則就沒有破壞連通性。
ac**:
1 #include2using
namespace
std;34
intn,m,k,t1,t2,cnt,cnt1;
5int a[505][505],vis[505
];6 queueq;78
void bfs(int
p)18}19
}2021int
getc()
30return
res;31}
3233
intmain()
39 cnt=getc();
40 scanf("
%d",&k);
41for(int i=1;i<=k;++i)
54return0;
55 }
PTA L2 013 紅色警報 25分
傳送門 這道題,並查集。判斷有多少個連通的區域,其實就是並查集的操作中判斷有多少個根節點。就是統計根節點的操作cnt。我們最開始應該儲存每一條連通的邊。在後面的攻占城市中,我們只需要不處理那些攻占城市連通的邊即可。用vis記錄。其他的繼續重新使用並查集合並操作,進而統計有多少個根節點sum。判斷兩個...
7 9 紅色警報
輸入在第一行給出兩個整數n 0 n 500 和m 5000 分別為城市個數 於是預設城市從0到n 1編號 和連線兩城市的通路條數。隨後m行,每行給出一條通路所連線的兩個城市的編號,其間以1個空格分隔。在城市資訊之後給出被攻占的資訊,即乙個正整數k和隨後的k個被攻占的城市的編號。注意 輸入保證給出的被...
紅色警報(25分)
戰爭中保持各個城市間的連通性非常重要。本題要求你編寫乙個報警程式,當失去乙個城市導致國家被 為多個無法連通的區域時,就發出紅色警報。注意 若該國本來就不完全連通,是 的k個區域,而失去乙個城市並不改變其他城市之間的連通性,則不要發出警報。輸入在第一行給出兩個整數n 0 n 500 和m 5000 分...