問題描述
給定n個點 m條邊, 起點和終點,
問:起點到終點中有幾個點是去掉這個點起點就無法到達終點的
樣例輸入76
1323
3435
4556
16樣例輸出
2
思路
記錄每條路徑, 將路徑上的點都加一,再統計路徑的總數,如果這個點的計數量與路徑總數相同,就代表每條路徑都要經過這個點,這個點就是滿足要求的乙個點。
**
#include
#include
#include
#include
#include
using
namespace std;
const
int n =
1010
, m =
4010
;int n, m, ans, st, en;
int e[m]
, ne[m]
, h[m]
, len;
bool vis[n]
;int v[n]
;vector<
int> path;
bool f =
false
;void
add(
int a,
int b)
void
dfs(
int x)
ans++
;return;}
for(
int i = h[x]
;~i; i = ne[i])}
return;}
intmain()
cin >> st >> en;
vis[st]
=true
;dfs
(st)
;int cnt =0;
for(
int i =
1; i <= n; i++)if
(f) cout << cnt << endl;
else
cout <<-1
<< endl;
return0;
}
藍橋杯 歷屆試題 dfs 割點 危險係數
開陣列要注意位置!因為評測環境的不同可能會出錯!在函式中定義的變數,在棧上建立,全域性定義的變數,在資料段上建立。由於你的陣列太大,會造成棧溢位,使得程式錯誤。堆疊據說是2m大小,而資料段要大很多,具體多大好像與系統環境相關。記錄s t路徑數ans 給所以經過的點計數,儲存在cnt中 cnt x a...
歷屆試題 危險係數 藍橋杯
問題描述 抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個危險係數df x,y 對於兩個站點x和y x y 如果能找到乙個站點z,當z被敵人破壞後,x和y不連通,那麼我們稱z為...
藍橋杯 歷屆試題 危險係數
歷屆試題 危險係數 問題描述 抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個危險係數df x,y 對於兩個站點x和y x y 如果能找到乙個站點z,當z被敵人破壞後,x和y不...