歷屆試題 危險係數
時間限制:1.0s 記憶體限制:256.0mb
問題描述
抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。
地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。
我們來定義乙個危險係數df(x,y):
對於兩個站點x和y (x != y), 如果能找到乙個站點z,當z被敵人破壞後,x和y不連通,那麼我們稱z為關於x,y的關鍵點。相應的,對於任意一對站點x和y,危險係數df(x,y)就表示為這兩點之間的關鍵點個數。
本題的任務是:已知網路結構,求兩站點之間的危險係數。
輸入格式
輸入資料第一行包含2個整數n(2 <= n <= 1000), m(0 <= m <= 2000),分別代表站點數,通道數;
接下來m行,每行兩個整數 u,v (1 <= u, v <= n; u != v)代表一條通道;
最後1行,兩個數u,v,代表詢問兩點之間的危險係數df(u, v)。
輸出格式
乙個整數,如果詢問的兩點不連通則輸出-1.
樣例輸入
7 61 3
2 33 4
3 54 5
5 61 6
樣例輸出
分析:關鍵點是兩點間一條路徑中必經之點,如果去除兩點便不連通。因此,在每一條連線兩點的路徑中都會有關鍵點。統計所有路徑中所有點的出現次數,出現次數與路徑總數相同的點便是關鍵點。
**:
#include#include#includeusing namespace std;
struct node ;
vectorg;
vectorvisit;
vectorpre;
mapmp;
int n, m;
int routes = 0;
int ans = 0;
void dfs(int start, int end)
routes++;
return;
} for (int i = 0; i < g[start].adj.size(); i++) }}
int main()
int first, last;
cin >> first >> last;
visit[first] = 1;
dfs(first, last);
if (routes == 0) else
} cout << ans << endl;
} return 0;
}
藍橋杯 PREV 12 危險係數
prev 12 危險係數 思路 找到兩點間的所有路徑,結點出現次數和路徑條數相等的 即每一條路徑都出現的結點 即為關鍵點 統計這樣的結點個數即可 include using namespace std const int maxn 1005 int n,m,s,t,cnt,par maxn num ...
藍橋杯 PREV 12 危險係數(dfs)
藍橋杯 prev 12 危險係數 試題 歷屆試題 危險係數 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個...
藍橋杯 危險係數
時間限制 1.0s 記憶體限制 256.0mb 提交此題 錦囊1 錦囊2 問題描述 抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個危險係數df x,y 對於兩個站點x和y x...