藍橋杯 2023年第四屆真題 危險係數

2022-08-13 19:39:13 字數 2592 閱讀 4230

題目描述

問題描述

抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。

地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。

我們來定義乙個危險係數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  6 

1 3

2 3

3 4

3 5

4 5

5 6

1 6

樣例輸出

2

和剪格仔的型別差不了多少,可以用dfs加上回溯的方法進行計算,用乙個標記陣列來控制是否去除乙個和判斷乙個點是否用了,用乙個外層的迴圈嘗試去除點,然後進行判斷,是否刪除此點後不能相連了。

#include #include #include#include #include#includeusing namespace std;

typedef long long ll;

int bg, ed;

vectorvc[3000];

int used[3000];

int n, m;

int ans,mark;

void dfs(int x)

for (int i = 0; i < vc[x].size(); i++) }

}int main()

scanf("%d %d", &bg, &ed);

ans = 0;

for (int i = 1; i <= n; i++)

used[i] = 0;

if (mark) ans++;

} cout << ans << endl;

return 0;

}

61

#include 

#include 

#include

#include 

#include

#include

using

namespace

std;

typedef

long

long

ll;

int

bg, ed;

vector

<

int>

vc[3000];

int

used[3000];

int

n, m;

int

ans,mark;

void

dfs(int

x)

for (inti=

0; i

<

vc[x].size(); i

++)

}

}

int

main()

scanf("%d %d", &

bg, &

ed);

ans=

0;

for (inti=

1; i

<=

n; i

++)

used[i] =

0;

if (mark) ans

++;

}

cout

<<

ans<<

endl;

return

0;

}

來自為知筆記(wiz)

藍橋杯 2023年第四屆真題 危險係數

抗日戰爭時期,冀中平原的地道戰曾發揮重要作用。地道的多個站點間有通道連線,形成了龐大的網路。但也有隱患,當敵人發現了某個站點後,其它站點間可能因此會失去聯絡。我們來定義乙個危險係數df x,y 對於兩個站點x和y x y 如果能找到乙個站點z,當z被敵人破壞後,x和y不連通,那麼我們稱z為關於x,y...

藍橋杯2023年第四屆真題剪格仔

問題 1432 藍橋杯 2013年第四屆真題 剪格仔 時間限制 1sec 記憶體限制 128mb 題目描述 歷屆試題 剪格仔 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開...

藍橋杯2023年第四屆真題錯誤票據

題目描述 某涉密單位下發了某種票據,並要在年終全部收回。每張票據有唯一的id號。全年所有票據的id號是連續的,但id的開始數碼是隨機選定的。因為工作人員疏忽,在錄入id號的時候發生了一處錯誤,造成了某個id斷號,另外乙個id重號。你的任務是通過程式設計,找出斷號的id和重號的id。假設斷號不可能發生...