红色警报

题目详情 - 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;
} 
复制代码

 

posted @   小志61314  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示