日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[蓝桥杯][2013年第四届真题]危险系数-dfs+图的遍历

發(fā)布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [蓝桥杯][2013年第四届真题]危险系数-dfs+图的遍历 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述
問題描述
抗日戰(zhàn)爭時期,冀中平原的地道戰(zhàn)曾發(fā)揮重要作用。
地道的多個站點間有通道連接,形成了龐大的網(wǎng)絡(luò)。但也有隱患,當(dāng)敵人發(fā)現(xiàn)了某個站點后,其它站點間可能因此會失去聯(lián)系。
我們來定義一個危險系數(shù)DF(x,y):
對于兩個站點x和y (x != y), 如果能找到一個站點z,當(dāng)z被敵人破壞后,x和y不連通,那么我們稱z為關(guān)于x,y的關(guān)鍵點。相應(yīng)的,對于任意一對站點x和y,危險系數(shù)DF(x,y)就表示為這兩點之間的關(guān)鍵點個數(shù)。
本題的任務(wù)是:已知網(wǎng)絡(luò)結(jié)構(gòu),求兩站點之間的危險系數(shù)。
輸入
輸入數(shù)據(jù)第一行包含2個整數(shù)n(2 < = n < = 1000), m(0 < = m < = 2000),分別代表站點數(shù),通道數(shù);
接下來m行,每行兩個整數(shù) u,v (1 < = u, v < = n; u != v)代表一條通道;
最后1行,兩個數(shù)u,v,代表詢問兩點之間的危險系數(shù)DF(u, v)。
輸出
一個整數(shù),如果詢問的兩點不連通則輸出-1.
樣例輸入

7 6
1 3
2 3
3 4
3 5
4 5
5 6
1 6

樣例輸出

2

解題思路:
去除某個點c(注意c!=a并且也c!=b),去除之后若a,b之間不存在通路,則說明c是a,b之間必要的點,計數(shù)器加1;

思路參考鏈接:
https://blog.csdn.net/weixin_41988545/article/details/86824844

代碼如下:

#include <iostream> #include <vector> #include <cstring> using namespace std; const int N = 2010; bool vis[N]; vector<int>mp[N]; int s, e; bool flag; int ans;void dfs(int s) {if (s == e) {flag = 0;return ;}for (int i = 0; i < mp[s].size(); i++) {if (!vis[mp[s][i]]) {vis[mp[s][i]] = 1;dfs(mp[s][i]);vis[mp[s][i]] = 0;}} }int main() {int n, m;cin >> n >> m;for (int i = 0; i < m; i++) {int a, b;cin >> a >> b;mp[a].push_back(b);mp[b].push_back(a);}cin >> s >> e;for (int i = 1; i <= n; i++) {memset(vis, 0, sizeof(vis));flag = 1;vis[i] = 1;for (int j = 0; j < mp[s].size(); j++) {vis[mp[s][j]] = 1;dfs(mp[s][j]);vis[mp[s][j]] = 0;}if (flag)ans++;}cout << ans << endl;return 0; }

總結(jié)

以上是生活随笔為你收集整理的[蓝桥杯][2013年第四届真题]危险系数-dfs+图的遍历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。