1. 程式人生 > 其它 >《手把手教你》系列基礎篇(九十一)-java+ selenium自動化測試-框架設計基礎-Logback實現日誌輸出-下篇(詳解教程)

《手把手教你》系列基礎篇(九十一)-java+ selenium自動化測試-框架設計基礎-Logback實現日誌輸出-下篇(詳解教程)

題目詳情 - L2-013 紅色警報 (25 分) (pintia.cn)

#include<iostream>
using namespace std;
const int N=1e5+10;
int p[N];
bool st[N];
struct mess{
    int x,y;
}v[N];
int find(int x)
{
    if(p[x]!=x) p[x]=find(p[x]);
    return p[x];
}
void merge(int x,int y)
{
    int xx=find(x);
    int yy=find(y);
    if
(xx!=yy) p[xx]=yy; } int main(){ int n,m; cin>>n>>m; for(int i=0;i<n;i++) p[i]=i; for(int i=0;i<m;i++) { cin>>v[i].x>>v[i].y; merge(v[i].x,v[i].y); } int sum=0; for(int i=0;i<n;i++) if(p[i]==i) sum++;
int q,k=0; cin>>q; while(q--) { int x; cin>>x; k++; st[x]=true; for(int i=0;i<n;i++) p[i]=i; for(int i=0;i<m;i++) { if(st[v[i].x]||st[v[i].y]) continue; merge(v[i].x,v[i].y); }
int t=0; for(int i=0;i<n;i++) if(p[i]==i) t++; //cout<<t<<endl; if(t-sum==1||t==sum) printf("City %d is lost.\n",x); else printf("Red Alert: City %d is lost!\n",x); sum=t; } if(k==n) cout<<"Game Over."<<endl; return 0; }