TOJ 3046: 招商银行网络系统
3046: 招商銀行網(wǎng)絡(luò)系統(tǒng)?
Time Limit(Common/Java):1000MS/3000MS ? ? Memory Limit:65536KByteTotal Submit: 12 ? ? ? ?? ? Accepted:3
Description
雖然招商銀行的網(wǎng)絡(luò)安全已經(jīng)做得非常完善,但是天有不測風(fēng)云,招商銀行內(nèi)部網(wǎng)絡(luò)系統(tǒng)的一臺(tái)服務(wù)器意外感染了一種新型病毒。為了避免更大的損失,管理員必須采取緊急措施遏制病毒的蔓延。
招商銀行內(nèi)部網(wǎng)絡(luò)系統(tǒng)共有n臺(tái)服務(wù)器,這n臺(tái)服務(wù)器使用m條電纜互相連接。為了描述方便,我們給服務(wù)器編號(hào)1到n。初始時(shí),1號(hào)服務(wù)器感染了病毒。每隔一分鐘,病毒便會(huì)從已感染病毒的服務(wù)器擴(kuò)散到所有與之直接相連的服務(wù)器上。
招商銀行的網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)得非常堅(jiān)固,即使要切斷電纜也非常困難。管理員只能在初始時(shí)切斷一根電纜。為了讓整個(gè)網(wǎng)絡(luò)系統(tǒng)盡可能晚地全部被病毒感染,他應(yīng)該切斷哪根電纜?
Input
輸入包含多組數(shù)據(jù)。
每組數(shù)據(jù)的第一行是兩個(gè)整數(shù)n和m (2≤n≤200, 1≤m≤n*(n-1)/2),其含義如上面所描述。
接下來m行每行兩個(gè)整數(shù)a, b (1≤a, b≤n),表示服務(wù)器a和服務(wù)器b有電纜直接連接。任意兩臺(tái)服務(wù)器間至多有一根電纜相連。
輸入數(shù)據(jù)以n=m=0結(jié)束。
Output
對(duì)每組數(shù)據(jù)輸出最晚多少分鐘之后整個(gè)網(wǎng)絡(luò)系統(tǒng)被感染。如果切斷某根電纜后病毒永遠(yuǎn)不會(huì)傳播到某些服務(wù)器,那么輸出”Great”。
Sample Input
4 5
1 2
2 3
3 4
4 1
1 3
4 4
1 2
2 3
3 4
1 3
0 0
Sample Output
2
Great
可以想到其實(shí)就是到1的最短路
可以想到m*m的,但是肯定會(huì)超時(shí)的啊。不過影響bfs其實(shí)就是bfs樹上的路徑,去枚舉這些路徑就是n*m的復(fù)雜度了
#include <bits/stdc++.h> using namespace std; #define fi first #define se second const int N=205; vector<int>G[N]; vector<pair<int,int>>E; int vis[N],n,cnt,ans; void bfs(int s,int t) {memset(vis,0,sizeof vis),cnt=0;queue<pair<int,int>>Q;Q.push({1,0}),vis[1]=1;while(!Q.empty()){pair<int,int> x=Q.front();Q.pop(),ans=max(ans,x.se),cnt++;for(auto X:G[x.fi])if(!vis[X]&&(!(X==s&&x.fi==t||X==t&&x.fi==s)))Q.push({X,x.se+1}),vis[X]=1;} } void la() {for(int i=0; i<n-1; i++){bfs(E[i].fi,E[i].se);if(cnt<n){cout<<"Great\n";return;}}cout<<ans<<"\n"; } int main() {int m,x;while(cin>>n>>m,n||m){ans=0,E.clear(),memset(vis,0,sizeof vis);for(int i=0,u,v; i<m; i++)cin>>u>>v,G[u].push_back(v),G[v].push_back(u);queue<int>Q;Q.push(1),vis[1]=1;while(!Q.empty()){x=Q.front(),Q.pop();for(auto X:G[x])if(!vis[X])Q.push(X),E.push_back({x,X}),vis[X]=1;}la();for(int i=1; i<=n; i++)G[i].clear();} }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/BobHuang/p/10590853.html
總結(jié)
以上是生活随笔為你收集整理的TOJ 3046: 招商银行网络系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: big sur删除snapshot_法国
- 下一篇: vb6 设计模式 mscomm该部件的许