首页 > 其他分享 >L2-013 红色警报 分数 25

L2-013 红色警报 分数 25

时间:2024-08-29 22:04:46浏览次数:10  
标签:25 false int void flag 013 L2 pi find

时间复杂度 N*M≈2.5e6

#include <bits/stdc++.h>
using namespace std;
int n = 510, m;
const int N = 510;
vector<pair<int,int>> path;    // 储存所有边
int p[N];    // 储存祖宗节点
bool flag[N];    // 判断是否已经被去除
void init()    // 初始化所有祖宗节点
{
    for(int i = 0; i < n; ++ i)
        p[i] = i;
}
int find(int x)    // find函数(包含路径压缩)
{
    if(x != p[x]) p[x] = find(p[x]);
    return p[x];
}
void minimerge(int a, int b)    // 合并
{
    int fa = find(a), fb = find(b);
    if(fa != fb) p[fa] = fb;
}
void merge()    // 合并函数(注意:如果一条边的两个顶点均未被删除才添加)
{
    for(auto pi : path)
    {
        if(flag[pi.first] == false && flag[pi.second] == false)
            minimerge(pi.first, pi.second);
    }
}
int fenzhi()    // 循环判断有多少分支
{
    int cnt = 0;
    for(int i = 0; i < n; ++ i)
        if(p[i] == i && flag[i] == false) ++ cnt;
    return cnt;
}
int main()
{
    cin >> n >> m;
    for(int i = 1; i <= m; ++ i)
    {
        int a, b;
        scanf("%d%d",&a,&b);
        path.push_back({a,b});
    }
    init();
    merge();
    int k;
    cin >> k;
    for(int i = 1; i <= k; ++ i)
    {
        int now = fenzhi();
        int dis;
        scanf("%d",&dis);
        flag[dis] = true;
        init();
        merge();
        int next = fenzhi();
        // 当且仅当连通分支数减少时,发出警报
        if(now < next) cout << "Red Alert: ";
        cout << "City " << dis << " is lost" << ".!"[now<next] << "\n";
    }
    if(k == n) printf("Game Over.\n");
    return 0;
}

标签:25,false,int,void,flag,013,L2,pi,find
From: https://www.cnblogs.com/Frodnx/p/18387622

相关文章

  • L2-010 排座位 分数 25
    #include<bits/stdc++.h>usingnamespacestd;constintN=1000;intp[N];intfind(intx){if(p[x]!=x)p[x]=find(p[x]);returnp[x];}intmain(){intn,m,k;cin>>n>>m>>k;for(inti=1;i<=......
  • 2025秋招大语言模型落地实践面试题
    本文系统地从计算力基础设施、软件架构、数据资源、应用场景和脑科学五大核心维度对大模型实践中的问题进行解答。目录计算力基础设施1.1什么是云边端协同架构?1.2信息技术应用创新计划相关政策对企业的影响?软件架构2.1拥有自己的大语言模型(LLM)是否必要?2.2......
  • Adobe Photoshop PS v25.6 激活版下载安装教程 (图像设计工具)
    前言AdobePhotoshop是一款专业强大的图片处理工具,从照片编辑和合成到数字绘画、动画和图形设计,一流的图像处理和图形设计应用程序是几乎每个创意项目的核心所在。利用Photoshop在桌面上的强大功能,您可以在灵感来袭时随时随地进行创作。一、下载地址2024v25.6下载:Adobe-Phot......
  • Autodesk 3DS Max v2025 激活版下载及安装教程 (3D 建模工具)
    前言Autodesk3dsMax是一款功能强大的3D建模和动画解决方案,游戏开发人员、视觉效果艺术家和平面设计师使用它来创建庞大的世界、令人惊叹的场景和引人入胜的虚拟现实(VR)体验。Autodesk3DSMAX是业界使用最广泛的3D建模和动画软件程序之一,它将为用户提供一系列新功能和工......
  • VL25 输入序列连续的序列检测
    这个题目的意思是输入是单bit脉冲,然后当8个周期的脉冲序列符合给定的参数值则match输出1;因此肯定需要一共8位的寄存器存储总共8个a的输入脉冲此外由于是从左向右匹配,因此每个周期输入的a要从寄存器最低位输入,从右向左移位(temp_a<={temp_a[6:0],a};),这样才是输入满足条件的011100......
  • P2825 [HEOI2016/TJOI2016] 游戏 与 P10945 Place the Robots
    本文中的机器人同炸弹,主要是题目描述不同,两道题目做法是本质相同的。思路:先说一下没有墙怎么办,那么当一个位置放了机器人之后,这个机器人所在的行和列是不能继续放置的。那么发现行和列几乎是独立的,考虑建二分图,若\((i,j)\)能放一个机器人,那么给\(i\toj\)建一条边。那么......
  • 前景堪忧?SaaS巨头Salesforce,25年辉煌后能否继续领跑市场?
    最近,时常听到有人说Salesforce失去了活力,这或许是对整个生态系统的普遍感受。多年来,Salesforce一直保持着巨大的发展势头,通过收购、创新和建立良好的合作伙伴关系已发展成为云计算行业巨头。在经历了近25年创纪录的增长和创新之后,Salesforce是否已经进入疲倦期了呢?Salesforce创......
  • Luogu P4425 转盘 题解 [ 黑 ] [ 线段树 ] [ 贪心 ] [ 递归 ]
    转盘:蒟蒻的第一道黑,这题是贪心和线段树递归合并的综合题。贪心破环成链的trick自然不用多说。首先观察题目,很容易发现一个性质:只走一圈的方案一定最优。这个很容易证,因为再绕一圈回来标记前面的和等前面的标记完之后继续走是等价的,并且再绕一圈甚至可能更劣。于是,我们只用走......
  • 25版王道数据结构课后习题详细分析 第五章 树与二叉树 5.4 树、森林
    一、单项选择题————————————————————————————————————————解析:正确答案:D————————————————————————————————————————解析:森林与二叉树具有对应关系,因此,我们存储森林时应先将森林转换......
  • bnds 8.25
    P3072因为空洞部分不是很好处理,所以考虑绕着外面搜一圈,所以从最外面的草垛的上一个点开始搜,遇到草就让\(ans\)加1,如果不是草就继续往外面搜,然后剪一下枝,如果一个不是草的点四周八个格子都不是草,那就不往下搜。P3073向周围四个点连一条边权为高度差的绝对值的边,然后最小生成......