問題描述
抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。
地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。
我們來定義乙個危險係數df(x,y):
對於兩個站點x和y (x != y), 如果能找到乙個站點z,當z被敵人破壞後,x和y不連通,那麼我們稱z為關於x,y的關鍵點。相應的,對於任意一對站點x和y,危險係數df(x,y)就表示為這兩點之間的關鍵點個數。
本題的任務是:已知網路結構,求兩站點之間的危險係數。
解題思路:
首先畫圖,根據題解資訊,畫出連通圖
找到到達目標點的所有路徑
記錄路徑上的所有點
路徑數 = 經過點的次數 即為關鍵點
#include #include #include using namespace std;
vectorvec[1005];
int vis[1005]; //標記點是否走過
int pass[1005]; //記錄這一點走過的次數
int count = 0; //記錄關鍵點的個數
int load = 0; //成功到達的路徑數
int v , u; //起點,終點
int n , m;
void dfs(int x)
load++;
vis[x] = 0;
return;
} for(int i=0;i> n >> m;
int a,b;
for(int i=0;i> a>>b;
vec[a].push_back(b); //表示a和b聯通,與a站點聯通的點存入
vec[b].push_back(a); //無向圖,雙向聯通
} cin >> u >> v;
dfs(u);
for(int i=1;i<=n;i++)
} if(load == 0) cout << "-1" << endl;
else cout << count << endl;
return 0;
}
藍橋杯 2023年第四屆真題 危險係數
抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個危險係數df x,y 對於兩個站點x和y x y 如果能找到乙個站點z,當z被敵人破壞後,x和y不連通,那麼我們稱z為關於x,y...
藍橋杯 2023年第四屆真題 危險係數
題目描述 問題描述 抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個危險係數df x,y 對於兩個站點x和y x y 如果能找到乙個站點z,當z被敵人破壞後,x和y不連通,那麼...
指標的危險
指標的危險 下面的 有沒有問題?如果有的話,問題在 intarray array size int pi for pi array 0 pi array array size 有兩個錯誤。對增值後的指標進行解引用時,陣列的第乙個元素並沒有被清零。另外,指標在越過陣列的右邊界以後仍然進行解引用,它將把...