藍橋杯 歷屆試題 國王的煩惱

2021-07-25 02:46:54 字數 987 閱讀 7040

關鍵:從最大的天數往前開始建立連通圖

思路:以天數為表頭建立鄰接表 

取出最大和最小的天數,

從最大的天數開始往前計算,一直算到最小的天數, 

如果某一天t將兩個不連通的小島連線起來則該天會收到**;如果某條邊連線的島是相連 ,則不做任何處理 

已知n個點的最小連通圖的邊數最少為n-1條,當連線的邊數為n-1時所有島相連,也就是說在該天之前都不會收到** ,完成檢索

#include #include using namespace std;

#define maxn 10005

#define maxm 100005

#define maxt 100005

struct nodeedge[maxm];

int head[maxt],fa[maxn];

int n,m,t,ma,mi;

int cnt,ans,sum;

void add(int t,int a,int b)

; edge[cnt]=e;

head[t]=cnt++;

}void init(int n)

int find(int x)

void connected()

if (ans==n-1) //建立連線圖成功

}

if (p==1) sum++;

if (h==0) break;

} }

int main()

{ int t,a,b;

while (cin>>n>>m)

{ ma=0; mi=maxt;

cnt=0; ans=0; sum=0;

memset(head,-1,sizeof(head));

for (int i=0;i>a>>b>>t;

add(t,a,b);

if(t>ma) ma=t;

else if(t

歷屆試題 國王的煩惱 藍橋杯

問題描述 c國由n個小島組成,為了方便小島之間聯絡,c國在小島間建立了m座大橋,每座大橋連線兩座小島。兩個小島間可能存在多座橋連線。然而,由於海水沖刷,有一些大橋面臨著不能使用的危險。如果兩個小島間的所有大橋都不能使用,則這兩座小島就不能直接到達了。然而,只要這兩座小島的居民能通過其他的橋或者其他的...

歷屆試題 國王的煩惱 (藍橋杯)

問題描述 c國由n個小島組成,為了方便小島之間聯絡,c國在小島間建立了m座大橋,每座大橋連線兩座小島。兩個小島間可能存在多座橋連線。然而,由於海水沖刷,有一些大橋面臨著不能使用的危險。如果兩個小島間的所有大橋都不能使用,則這兩座小島就不能直接到達了。然而,只要這兩座小島的居民能通過其他的橋或者其他的...

藍橋杯 歷屆試題 國王的煩惱

好久沒練了,忽然感覺對並查集陌生了好多,今天專門找題來練一下才發現之前掌握的並查集太片面了。國王的煩惱,這個題大意是 n個島嶼,有m條大橋,每條大橋連線兩個島嶼,可能有兩個相同島嶼之間有多條大橋的情況。輸入 n,m,m行橋,每行包含 島嶼a,島嶼b,該橋剩餘工作的天數。說 每斷裂一所能夠導致原本兩座...