P1197-星球大战【并查集,图论】

正题

题目链接


大意

有n个星球,有一些双向通道连接星球,将一些星球实施打击。求开始和每一次打击后的联通块数量。


解题思路

可以尝试一下逆向思维,把摧毁改为连接,然后倒着输出。


代码

#include<cstdio>
#include<iostream>
using namespace std;
struct line{int x,y,next;
};
line a[400001];
int o,w,p,xx,yy,n,m,father[400001],s,ls[400001],q,mark[400001],br[400001];
bool v[400001];
int find(int x)
{if (x!=father[x]) return father[x]=find(father[x]);return father[x];
}
int unionn(int x,int y)
{int fa=find(x),fb=find(y);if (fa!=fb){if (fa<fb) father[fb]=fa;else father[fa]=fb;s--;}
}
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) father[i]=i;for (int i=1;i<=m;i++){scanf("%d%d",&xx,&yy);xx++;yy++;a[++p].x=xx;a[p].y=yy;a[p].next=ls[xx];ls[xx]=p;a[++p].y=xx;a[p].x=yy;a[p].next=ls[yy];ls[yy]=p;}//输入scanf("%d",&w);for (int i=1;i<=w;i++){scanf("%d",&br[i]);br[i]++;//记录打击顺序v[br[i]]=true;//标记打击}s=n-w;//计算剩余星球数for (int i=1;i<=p;i++){if (!v[a[i].x] && !v[a[i].y])//没用被打击{unionn(a[i].x,a[i].y);//连接}}mark[++o]=s;//记录for (int i=w;i>=1;i--){s++;v[br[i]]=false;//建立q=ls[br[i]];while (q){if (!v[a[q].y])unionn(br[i],a[q].y);//连接q=a[q].next;}mark[++o]=s;//记录}for (int i=o;i>=1;i--) printf("%d\n",mark[i]);//输出
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码调用NullPointerException(NPE)

异常信息&#xff1a; 空指针异常 场景&#xff1a; 控制调用服务代码发生异常 服务代码调用mapper发生异常 解决方案&#xff1a; 找到异常发生的行&#xff0c;找方法调用过程"."&#xff0c; 如&#xff1a;xxxService.xxx()。通常都是这个xxxService为null&#…

AOP in dotnet :AspectCore的参数拦截支持

距离上一篇AspectCore的介绍发布已经很长一段时间了&#xff0c;这篇文章也早该和大家见面&#xff0c;最近一直忙于适应新工作&#xff0c;并在业余时间有幸向何镇汐&#xff0c;Savorboard&#xff0c;农夫&#xff0c;AlexLEWIS等几位大牛请教学习&#xff0c;收获颇多。另一…

GitHub 发布了一款重量级产品,可直接运行代码

转载自 GitHub 发布了一款重量级产品&#xff0c;可直接运行代码 【导读】10月16日&#xff0c;GitHub Universe开发者大会如期举行&#xff0c;并重磅推出GitHub Actions&#xff0c;平台主管Sam Lambert称&#xff0c;这将是GitHub历史上最大的改变。此外&#xff0c;GitHu…

“老师,请您多关注一下我吧!!!”

一个班&#xff0c;有学习好的&#xff0c;有学习差的&#xff1b;有喜欢表现的&#xff0c;也有不喜欢表现的。01爱表现的类型&#xff1a;第一种&#xff0c;喜欢表现的学生平时总是让时不时的让老师关注到他&#xff0c;比如上课和老师积极互动的&#xff0c;老师问一个问题…

【2018.3.31】模拟赛之一-ssl2406 约数【水题】

前言 其实水题我是真的不想写的&#xff0c;但是没有办法 正题 大意 一个数&#xff0c;输出他的所有除数和 代码 #include<cstdio> #include<cmath> using namespace std; int n,s; int main() { // freopen("bri.in","r",stdin); // fr…

.NET Core 事件总线,分布式事务解决方案:CAP

背景 相信前面几篇关于微服务的文章也介绍了那么多了&#xff0c;在构建微服务的过程中确实需要这么一个东西&#xff0c;即便不是在构建微服务&#xff0c;那么在构建分布式应用的过程中也会遇到分布式事务的问题&#xff0c;那么 CAP 就是在这样的背景下诞生的。 最初打算做…

dubbo小项目2

1、项目结构搭建 父项目pom.xml <?xml version"1.0" encoding"UTF-8"?>-<project xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi"http://www.w3.org/2001/XM…

Java中的TreeSet集合会自动将元素升序排序

我们都知道&#xff0c;java中的集合可以分为这么两大类&#xff1a;Collection和Map &#xff0c;其中Collection 接口中又可以派生出来两个接口&#xff0c;分别为&#xff1a;List和Set接口。其中&#xff0c;Set下有HashSet&#xff0c;LinkedHashSet&#xff0c;TreeSet&a…

面试时如何介绍自己的项目经验

转载自 面试时如何介绍自己的项目经验 在面试时&#xff0c;经过寒暄后&#xff0c;一般面试官会让介绍项目经验 。常见的问法是&#xff0c;说下你最近的&#xff08;或最拿得出手的&#xff09;一个项目。 根据我们的面试经验&#xff0c;发现有不少候选人对此没准备&…

【2018.3.31】模拟赛之二-ssl2407 负进制【贪心】

正题 大意 将二进制从右到左的权值改为&#xff1a; 1,-2,4,-8,16,-32,64… 然后给出一个数用二进制表达出来&#xff0c;如&#xff1a; −131101111(−32)116141(−2)11−131101111(−32)116141(−2)11解题思路 注意&#xff1a;这不是最优解。 比赛的时候就一直在想用贪…

jsp中使用cookie时报错……

今天在看jsp中的cookie时&#xff0c;遇到一个比较麻烦的问题。关键代码如下&#xff1a;登录页面&#xff1a;login.jsp<form action"doLogin.jsp" method"post">用户名&#xff1a;<input type"text" name"sname" /><…

FastDFS(分布式文件系统)

Tracker&#xff1a;标准服务端口22122、HTTP端口8080 Storage&#xff1a;标准服务端口23000、HTTP端口8888 文章目录一、架构二、文件上传、下载、删除1 时序图2 流程说明3 代码实现一、架构 架构图&#xff1a; Client&#xff1a;客户端。使用java语言编写的项目属于客户…

微服务中的异步消息通讯

前言 在上一篇文章中&#xff0c;我们说到了异步消息通讯&#xff0c;下面这篇文章呢&#xff0c;大部分内容是翻译来自于这篇微软的文章&#xff0c;所以其内容还是具有一定的理论指导意义的。 当我们跨多个微服务进行内部通讯的时候&#xff0c;异步消息和事件驱动至关重要…

10 道关于 Java 泛型的面试题

转载自 10 道关于 Java 泛型的面试题 1.Java中的泛型是什么 ? 使用泛型的好处是什么? 这是在各种Java泛型面试中&#xff0c;一开场你就会被问到的问题中的一个&#xff0c;主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人都知道&#xff0c;在集合…

【2018.3.31】模拟赛之三-ssl2408 比萨【搜索,dfs】

正题 大意 有t种配料&#xff0c;有n种限制。限制就是几种配料不能同时使用&#xff08;可能有多种&#xff09;。求方案数 解题思路 暴力搜索能过 代码 #include<cstdio> using namespace std; int n,t,k[53],a[53][21],v[21],s; bool flag; void dfs(int dep,int x)…

CSS3的几个变形案例……

大家好&#xff0c;欢迎来到雄雄的小课堂&#xff0c;那个……辣椒酱很好吃的&#xff0c;哈哈哈哈&#xff01;今天给大家分享的内容是利用CSS制作网页的动画。辣椒酱&#xff1a;自从有了这款辣椒酱&#xff0c;拌饭再也不用老干妈CSS变形CSS的变形包括这么几种效果&#xff…

图片管理应用

文章目录一、简介二、父项目三、图片管理服务的数据库设计四、定义module &#xff1a; img_pojo五、定义module &#xff1a; img_mapper六、定义module &#xff1a; img_service_api七、module &#xff1a; img_service_provider八、 定义module &#xff1a; imp_service_…

我眼中的ASP.NET Core之微服务

前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序&#xff0c;想必大家都已经知道了&#xff0c;那就是eShopOnContainers。 我们先不看项目的后缀名称 OnXXX &#xff0c;因为除了 OnContainers 还有 OnAzure&#xff0c;OnWeb&#xff0c;OnKuberne…

形象的解释神经网络激活函数的作用是什么

转载自 形象的解释神经网络激活函数的作用是什么 神经网络中激活函数的作用 查阅资料和学习&#xff0c;大家对神经网络中激活函数的作用主要集中下面这个观点&#xff1a; 激活函数是用来加入非线性因素的&#xff0c;解决性模型所不能解决的问题。 下面我分别从这个方面…

【2018.3.31】模拟赛之四-ssl2408 句子【dp,字符串】

正题 大意 先给出n个句子&#xff0c;然后给出一个最终句子。最终句子由多个句子加密后组成&#xff08;可能重复&#xff09;。加密方法就是将字母调换位置&#xff0c;加密代价就是该位置与原来的字母不同的数量。求达到最终句子的最小加密代价 解题思路 用f[i]f[i]表示最终…