[洛谷P1197]星球大战

win11下的MySQL安装 目前官方最新版本是8.0.26,考虑到其稳定性、可靠性还需一定周期保证,所以使用官方版求稳定仍然建议5.7系列。3、选择MySQL Servers 5.7.38 -x64,然后按绿色箭头将选中的版本移植到右边选中框中。4、点击下方蓝色Advanced Options,选择安装位置。1、在开始界面搜索MySQL,点击command line。4、在“系统变量”中选择“path”,点击编辑。5、新建——>增加MySQL路径——>确定,12、execute,安装好后next。9、不需要做修改,直接点击next。. 阅读详情

题目←

打这题的时候状态成迷……

好多莫名奇妙的手滑导致wa了三次……

顺便题面坑人啊!说好的一开始直接或间接联通呢QAQ

思路:

离线做法。由删点转为建点
每次建点时遍历点连出的所有边,如果发现连向的点还没被建起来就pass掉
新建点时联通块+1,每遍历到可以连通且不在同一块中的点(已被建的点)连通块 –;
这样新建一个点之后连通块可能比以前更少

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<stack>
using namespace std;
const int MAXN = 400000 + 50;
int head[MAXN],next[MAXN << 1],tot,n,m,k,rank[MAXN];
struct edge
{
    int f,t;
}l[MAXN << 1];
void build(int f,int t)
{
    l[++ tot] = (edge){f,t};
    next[tot] = head[f];
    head[f] = tot;
}
int fa[MAXN];
void init(int n)
{
    for(int i = 0;i <= n;i ++)
        head[i] = -1,fa[i] = i;
}
int a,b;
bool del[MAXN];

int find(int x)
{
    return fa[x] == x ? x : x = find(fa[x]);
}
bool same(int a,int b)
{
    return find(a) == find(b);
}
void merge(int a,int b)
{
    a = find(a);
    b = find(b);
    if(rank[a] < rank[b])swap(a,b);
    fa[b] = a;
    if(rank[a] == rank[b])rank[a] ++;
}
int cnt,ans[MAXN];
int ope[MAXN];
bool exist[MAXN];
void add(int x)
{
    cnt ++;
    for(int i = head[x];i != -1;i = next[i])
    {
        int t = l[i].t;
        if(!exist[t])continue;
        if(!same(x,t))
        {
            merge(x,t);
            cnt --;
        }
    }
}
int main()
{
    scanf("%d%d",&n,&m);
    init(n);
    for(int i = 1;i <= m;i ++)
    {
        scanf("%d%d",&a,&b);
        build(a,b);
        build(b,a);
    }
    scanf("%d",&k);
    for(int i = 1;i <= k;i ++)
    {
        scanf("%d",&a);
        del[a] = true;
        ope[i] = a;
    }
    for(int i = 0;i <= n - 1;i ++)
    {
        if(!del[i])add(i),exist[i] = true;
    }
    for(int i = k;i >= 1;i --)
    {
        ans[i] = cnt;
        exist[ope[i]] = true;//exist[i] = true → wa;
        add(ope[i]);
    }
    ans[0] = cnt;//ans[0] = 1 → wa;
    for(int i = 0;i <= k;i ++)
    {
        printf("%d\n",ans[i]);
    }
    return 0;
}
QGis二次开发 —— 1.1、ubuntu24.04下搭建QGis3.40.12二次开发环境(附:全部问题解决方法) QGis二次开发 —— 1.1、ubuntu24.02下搭建QGis3.40.12二次开发环境(附:全部问题解决方法) 阅读详情

相关推荐

LabVIEW事件结构避坑指南:为什么你的‘确定按钮’事件有时会失灵?

本文深入探讨了LabVIEW事件结构中'确定按钮'事件失灵的常见原因及解决方案。从事件队列机制到事件类型选择,详细分析了事件丢失的五大原因,包括事件处理耗时过长、事件类型选择不当等,并提供了优化登录界面案例的实用建议。掌握这些技巧可显著提升LabVIEW用户界面的响应可靠性。

weixin_42548888的博客 355

【洛谷】P1197 [JSOI2008]星球大战

#include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; #include&lt;stack&gt; using namespace std; const int maxn=400000+5; vector&lt;...

圣帝天龙之博客传奇 370

pynq-z2 HLS开发

定制Overlay一.用HLS生成一个定制IP功啊啊是合理的创建标题,有助于目录的生成如何改变是式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一.用HLS生成一个定制IP ...

qq_38769280的博客 4156

#洛谷 P1197 [JSOI2008]星球大战 (离线 + 并查集)

题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。...

OlaMins 400

Proteus仿真实战:用STM32F103C8T6输入捕获模式精准测量PWM频率(附完整代码)

本文详细解析了如何在Proteus仿真环境中,利用STM32F103C8T6的输入捕获模式精准测量PWM频率。文章从输入捕获的工作原理、Proteus电路搭建、模块化代码实现到调试优化,提供了完整的实战指南和代码示例,帮助开发者深入理解并掌握这一关键技术。

weixin_29158047的博客 257

SystemC实战:用C++搞芯片建模的5个典型场景(含代码示例)

本文通过五个典型实战场景,详细介绍了如何使用SystemC这一基于C++的硬件建模库进行芯片设计与系统级建模。内容涵盖从基础并发模块构建、事务级总线建模、跨时钟域验证,到与ModelSim协同仿真及多核系统性能探索,并提供了完整的代码示例,帮助软件工程师利用熟悉的C++工具链高效参与硬件架构设计与验证。

weixin_29191761的博客 315

【题解】洛谷P1197 [JSOI2008]星球大战

题目 洛谷P1197[JSOI2008]星球大战 题解 判断两个星球的连通性以及计算连通块的个数,可以使用并查集。但是,并查集不容易实现删除操作,所以要从问题的反面考虑,即从最终的局面开始,逐个添加被消灭的星球。实时计算连通块的数量,若两个连通块合并,则数量减一。 一些与题目本身无关的提醒:定义vector<int> v后,如果容器是空的,不能用v[]=直接赋值,如果容器内有超过i个元素(即v[i]存在),才可以直接访问v[i]。 变量名不要用kill(与库函数

zjgmartin的博客 448

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3653

逆向思维例题——洛谷P1197 星球大战

题目:https://www.luogu.org/problemnew/show/P1197 题解:

qq_38993096的博客 347

七天征服AutoSAR/SomeIP_01速成配置并代码生成

本文为AutoSAR中SomeIP配置开发的实操指南摘要,重点介绍通过通信矩阵快速构建SomeIP工程的方法。核心内容包括:1)基于Excel通信矩阵生成系统描述文件(arxml);2)在AutoSAR工具中导入文件自动生成协议栈配置,涵盖ETHIF、SoAd等模块;3)关键报错处理(COM/PDUR/SOAD/SD模块的配置修正);4)SomeIPXF的数据编解码配置;5)SWC组件与RTE任务映射。教程强调"先完成再完美"的实践原则,指导开发者快速生成基础代码框架,为后续协议调试奠定

大叔带刺的博客 303

Codex 接入国产大模型完整指南:CC-Switch 与 Codex++ 的工程化选型

Codex 默认走 OpenAI Responses API,而 DeepSeek、GLM、Kimi 等国产模型只提供 OpenAI-compatible 的 Chat Completions——两套协议在消息结构、流式响应、reasoning 字段、tool call 上都不兼容,所以"改个 Base URL + 填国产 Key"这种朴素操作根本跑不通。本文从架构师视角出发,把 Codex 接入国产大模型这件事讲透:先剖析协议链路到底卡在哪,再对比 CC-Switch和 Codex++两套主流方案的差异

少说,多做 3853

洛谷P1197 [JSOI2008]星球大战

洛谷P1197 [JSOI2008]星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。 现在,反抗军首领交给你一个任务:给出原来两个星球之间的以太隧道连通情况

qq_43810711的博客 199

思科 MIB 库

思科 MIB

m0_54931486的博客 770

洛谷P1197星球大战题解

题解之前的小故事——细节决定成败细节决定成败细节决定成败 两天前为了练习并查集,在洛谷做了这道题,刚开始的时候没有思路就去看了题解,找到解题方向后就去自己写了代码,在本地通过样例后就去提交,结果只通过了四个点,就回去检查自己的代码,发现没有什么大问题,就去看了题解的代码,发现解题思想是一致的,就又交了一发,结果还是死活WA了六个点只有40分,又回去检查代码,发现真的没有什么问题啊,我想是不是测试点...

Wlis的博客 627

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

洛谷 P1197 [JSOI2008]星球大战

洛谷 P1197 [JSOI2008]星球大战 Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于...

weixin_30664615的博客 72

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

洛谷 P1197 [JSOI2008]星球大战 离线+并查集

洛谷 P1197 [JSOI2008]星球大战 离散化+并查集 题解: 这道题我们需要离线存储信息,然后逆着往上不断地修复每个星球。 代码如下: #include<iostream> #include<algorithm> #include<stdio.h> #include<cmath> #include<queue> #include...

化身孤岛的鲸o的博客 461

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

洛谷P1197.星球大战

正着不好想,逆向思维将。

Pisasama的博客 345

(并查集)洛谷P1197 [JSOI2008]星球大战

P1197 [JSOI2008]星球大战 思路: 摧毁是这个题目的一个难点,如果是摧毁一个点就重新构图的话肯定会T。那么我们可以反着想,就是从最后的状态往前推,用并查集判断是否是连通块。 代码: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long long const int N=1e6+10;...

Z7784562的博客 320

【洛谷】P1197星球大战

【洛谷】P1197星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。 现在,反抗军首领交给你一个任务:给出原来两个星球之间的以太隧道连通情况以及帝国打击的星球

weixin_46975572的博客 313

#洛谷oj:P1197星球大战

** 洛谷oj:P1197星球大战 ** #题目描述 #要用并查集 #这个是要反着用的 比起其他差不多的题有点特殊 #知识点 并查集 #代码 第一次:就按照一般的板子来写超时了 就稍微优化了点 还是超时了 懂了这个再看第二个 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define Maxn 400005 int

resting_xiub的博客 310

每日一题004-并查集-洛谷p1197星球大战

现在,反抗军首领交给你一个任务:给出原来两个星球之间的以太隧道连通情况以及帝国打击的星球顺序,以尽量快的速度求出每一次打击之后反抗军占据的星球的连通块的个数。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。的方式存图,大多数题解都是这么写的,但我觉得,我偷懒使用直接存边和邻接表的方式,代码写起来更简单。先假设全部摧毁了,看看有几个连通块,再倒着恢复节点,并记录连通块的数量。很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。

zjh的博客 1128

寒假刷题34:洛谷P1197 [JSOI2008]星球大战(并查集)

题目链接: 洛谷P1197 [JSOI2008]星球大战 题目解析: 离线以后逆序操作 AC代码: #include<iostream> #include<cstring> #include<vector> #include<queue> #include<algorithm> using namespace std; con...

int_lyy的博客 216

洛谷 P1197 [JSOI2008]星球大战 链式前向星 逆向并查集 连通块

题目链接: https://www.luogu.com.cn/problem/P1197 参考博客: https://www.luogu.com.cn/blog/Shine-Sky/solution-p1197 这个博客超级清晰,建议复习时再反复学习 算法: 1:逆向并查集 2:链式前向星 思路: 1:如果我们去正着摧毁 ,想想都有点困难,要不 我们使用逆向思维哈哈哈 2:没...

aiwo1376301646的博客 419
上一篇: [codevs1507]酒厂选址
下一篇: [洛谷P3927]一道中档题
LOI_pingxing
博客等级 码龄10年 24粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值