小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

天梯 - 紅色警報(bào)(判斷去掉一個(gè)節(jié)點(diǎn)后的連通分支數(shù)是否改變)

 印度阿三17 2020-03-28

戰(zhàn)爭(zhēng)中保持各個(gè)城市間的連通性非常重要。本題要求你編寫(xiě)一個(gè)報(bào)警程序,當(dāng)失去一個(gè)城市導(dǎo)致國(guó)家被分裂為多個(gè)無(wú)法連通的區(qū)域時(shí),就發(fā)出紅色警報(bào)。注意:若該國(guó)本來(lái)就不完全連通,是分裂的k個(gè)區(qū)域,而失去一個(gè)城市并不改變其他城市之間的連通性,則不要發(fā)出警報(bào)。

輸入格式:

輸入在第一行給出兩個(gè)整數(shù)N(0 < N ≤ 500)和M(≤ 5000),分別為城市個(gè)數(shù)(于是默認(rèn)城市從0到N-1編號(hào))和連接兩城市的通路條數(shù)。隨后M行,每行給出一條通路所連接的兩個(gè)城市的編號(hào),其間以1個(gè)空格分隔。在城市信息之后給出被攻占的信息,即一個(gè)正整數(shù)K和隨后的K個(gè)被攻占的城市的編號(hào)。

注意:輸入保證給出的被攻占的城市編號(hào)都是合法的且無(wú)重復(fù),但并不保證給出的通路沒(méi)有重復(fù)。

輸出格式:

對(duì)每個(gè)被攻占的城市,如果它會(huì)改變整個(gè)國(guó)家的連通性,則輸出Red Alert: City k is lost!,其中k是該城市的編號(hào);否則只輸出City k is lost.即可。如果該國(guó)失去了最后一個(gè)城市,則增加一行輸出Game Over.。

輸入樣例:

5 4
0 1
1 3
3 0
0 4
5
1 2 0 4 3

輸出樣例:

City 1 is lost.
City 2 is lost.
Red Alert: City 0 is lost!
City 4 is lost.
City 3 is lost.
Game Over.
 1 #include <bits/stdc  .h>
 2 typedef long long LL;
 3 const int INF=0x3f3f3f3f;
 4 const double eps =1e-8;
 5 const int mod=1e9 7;
 6 const int maxn=1e5 10;
 7 using namespace std;
 8 
 9 int G[505][505];
10 int vis[505];
11 int ko[505];
12 int n;
13 
14 void DFS(int u)
15 {
16     for(int i=0;i<n;i  )
17     {
18         if(!ko[i]&&!vis[i]&&G[u][i])
19         {
20             vis[i]=1;
21             DFS(i);
22         }
23     }
24 }
25 
26 int main()
27 {
28     #ifdef DEBUG
29     freopen("sample.txt","r",stdin);
30     #endif
31     
32     int m;
33     scanf("%d %d",&n,&m);
34     for(int i=1;i<=m;i  )
35     {
36         int u,v;
37         scanf("%d %d",&u,&v);
38         G[u][v]=G[v][u]=1;
39     }
40     int T;
41     scanf("%d",&T);
42     int cnt=0;
43     while(T--)
44     {
45         int k;
46         scanf("%d",&k);
47         cnt  ;
48         memset(vis,0,sizeof(vis));
49         int num=0;
50         ko[k]=1; vis[k]=1;
51         for(int i=0;i<n;i  )
52         {
53             if(!ko[i]&&!vis[i]&&G[k][i])
54             {
55                 vis[i]=1;
56                 DFS(i);
57                 num  ;
58             }
59         }
60         if(num<=1)
61             printf("City %d is lost.\n",k);
62         else if(num>=2)
63             printf("Red Alert: City %d is lost!\n",k);
64         if(cnt==n)
65         {
66             printf("Game Over.\n");
67             break;
68         }
69     }
70     
71     return 0;
72 }

-

來(lái)源:https://www./content-4-668251.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多