bzoj 1015 并查集

 

代码:

//这题可以反着想,把要去掉的点倒着处理变成往图中一个一个的加点,然后用并查集处理联通快就好了。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int MAXN=400000;
int fa[MAXN+10],des[MAXN+10],ans[MAXN+10],head[MAXN+10],n,m,k,tot;
bool use[MAXN+10];
struct Edge
{int to,next;
}edge[MAXN*2+10];
void init()
{tot=0;for(int i=0;i<n;i++){fa[i]=i;use[i]=1;head[i]=-1;}
}
void add(int x,int y)
{edge[tot].to=y;edge[tot].next=head[x];head[x]=tot++;
}
int find(int x) {return x==fa[x]?x:fa[x]=find(fa[x]);}
int main()
{scanf("%d%d",&n,&m);init();for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);add(x,y);add(y,x);}scanf("%d",&k);for(int i=1;i<=k;i++){scanf("%d",&des[i]);use[des[i]]=0;}int tmp=0;for(int i=0;i<n;i++){if(!use[i]) continue;tmp++;for(int j=head[i];j!=-1;j=edge[j].next){int x=edge[j].to;if(!use[x]) continue;int ii=find(i),xx=find(x);if(ii!=xx){fa[ii]=xx;tmp--;}}}ans[k]=tmp;for(int i=k;i>=1;i--){int x=des[i];use[x]=1;tmp++;for(int j=head[x];j!=-1;j=edge[j].next){int y=edge[j].to;if(!use[y]) continue;int xx=find(x),yy=find(y);if(xx!=yy){fa[xx]=yy;tmp--;}}ans[i-1]=tmp;}for(int i=0;i<=k;i++)printf("%d\n",ans[i]);return 0;
}

 

转载于:https://www.cnblogs.com/--ZHIYUAN/p/7445828.html

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

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

相关文章

页面中切换echarts主题

要做的效果是&#xff1a;点击下拉框切换echarts主题 下面是效果图&#xff1a; 项目环境&#xff1a; vue ts es6 echarts(4.2.1) 步骤 安装依赖&#xff0c; npm install echarts -S / yarn add echarts -S引入主题 参考链接选择下拉框中的主题时&#xff0c;拿到图表主题…

画极线

OpenCV学习日记5 2017-05-27 10:44:35 1000sprites 阅读数 2339更多 分类专栏&#xff1a; 计算机视觉 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.cs…

Win10开启Administrator超级管理员账户

方法1 1、在系统的开始菜单上&#xff0c;我们单击鼠标右键&#xff0c;然后选择计算机管理打开进入 2、打开的计算机管理窗口&#xff0c;点击本地用户和组中的用户打开&#xff0c;然后点击右侧的Administrator账户&#xff0c;双击鼠标打开进入 3、打开的属性窗口中&#xf…

Mysql异常问题排查与处理——mysql的DNS反向解析和客户端网卡重启

中午刚想趴一会&#xff0c;不料锅从天降&#xff01;&#xff01;&#xff01;Mysql连不上了。。。。。。。 现象如下&#xff1a; 现象1&#xff1a;登录mysql所在服务器&#xff0c;连接MySQL 成功&#xff1b; 现象2&#xff1a;通过客户端远程连接MySQL&#xff0c;返回失…

最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

优化一览图 优化 笔者将优化分为了两大类&#xff1a;软优化和硬优化。软优化一般是操作数据库即可&#xff1b;而硬优化则是操作服务器硬件及参数设置。 1、软优化 1&#xff09;查询语句优化 首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息。 例…

【读书笔记】《深入浅出Webpack》

Webpack版本 分析版本为3.6.0 4.0为最近升级的版本&#xff0c;与之前版本变化较大&#xff0c;编译输出的文件与3.0版本会不一致&#xff0c;目前项目中使用的版本3.0版本&#xff0c;所以基于3.0版本进行分析学习。 Webpack构建流程 初始化&#xff1a;启动构建&#xff0c;读…

《JAVA与模式》之桥梁模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述桥梁&#xff08;Bridge&#xff09;模式的&#xff1a; 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦&#xff0…

LABLEME UPDATE DAMOD

Labelme的改进——海量图片的自动标注 深度学习一般需要对大量的图片进行标注&#xff0c;但是手动标注耗时耗力&#xff0c;所以模仿labelme软件的功能&#xff0c;使用程序对大批量的图片进行自动标注&#xff0c;大大减少手动操作。下面介绍如何实现对大批量的图片进行标…

Java基础教程:面向对象编程[2]

Java基础教程&#xff1a;面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中&#xff0c;可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 default (即缺省&#xff0c;什么也不写&#xff09;: 在同一包内可见&#xff…

【javascript】异步编年史,从“纯回调”到Promise

异步和分块——程序的分块执行 一开始学习javascript的时候&#xff0c; 我对异步的概念一脸懵逼&#xff0c; 因为当时百度了很多文章&#xff0c;但很多各种文章不负责任的把笼统的描述混杂在一起&#xff0c;让我对这个 JS中的重要概念难以理解&#xff0c; “异步是非阻塞的…

Shell编程之if语法练习(LNMP)全过程

大家好&#xff0c;我是延凯&#xff0c;本人原来在CSDN写作已经快一年了 都是相关Linux运维这方面的技术知识&#xff0c;现在搬到博客园也是我一直想的&#xff0c;本博客主要写Python&#xff0c;docker&#xff0c;shell等偏向开发云计算等知识点&#xff0c;谢谢各位&…

基于UNet和camvid数据集的道路分割

基于UNet和camvid数据集的道路分割h(1.3.0)&#xff1a; 背景 语义分割是深度学习中的一个非常重要的研究方向&#xff0c;并且UNet是语义分割中一个非常经典的模型。在本次博客中&#xff0c;我尝试用UNet对camvid dataset数据集进行道路分割&#xff0c;大致期望的效果如下&…

二分法查找和普通查找

一、普通查找 对于数组和一个需要查找的元素来说&#xff0c;普通查找的原理很简单&#xff0c;即为从数组的第一个元素到最后一个元素进行遍历&#xff0c;如果第i个元素的值等于我们需要查找的值&#xff0c;那么返回找到的角标i&#xff0c;否则返回-1表示没有查找到。这里以…

Linux下安装zookeeper集群(奇数个)

1、 解压zookeeper压缩包 2、 data里创建“myid”文件&#xff08;命令touch myid&#xff09;&#xff0c;内容是1&#xff08;命令 echo 1 >> myid&#xff09; 3、 zoo.cnf里配置dataDir、clientport、server.nIP:端口1&#xff08;2881&#xff09;&#xff1a;端…

立体标定

立体标定应用标定数据转换成深度图标定 由于摄像头目前是我们手动进行定位的&#xff0c;我们现在还不知道两张图像与世界坐标之间的耦合关系&#xff0c;所以下一步要进行的是标定&#xff0c;用来确定分别获取两个摄像头的内部参数&#xff0c;并且根据两个摄像头在同一个世…

if _name_ == _main_

1.作用 py文件有2种使用方法&#xff0c;第1是自己本脚本自己独立执行&#xff1b;第2是被import到其他文件脚本中执行. if _name_ " _main_" 该语句控制其他下一步的脚本是否执行。如果是自己本脚本独立执行&#xff0c;那就运行该if条件下的脚本&#xff1b;如果…

LLVM完整参考安装

文章目录 一、直接下载编译好的,见图片命令二、下载源代码自己编译安装 下面提供下载并mv完全的文件包三、安装LLVM编译器一、直接下载编译好的,见图片命令 这里使用llvm官网编译好的包, 直接解压即可用LLVM下载官网点击这里下载llvm-6.0.1 下载完成后解压tar -vxf clangllv…

微软正式释出基于 Chromium 的 Edge 预览版本

百度智能云域名服务&#xff0c;.com新用户首购仅需25元 微软基于 Chromium 的全新版本 Edge 一直吸引着开发者与用户的目光&#xff0c;当地时间 8 日&#xff0c;官方终于释出了第一个 Dev 和 Canary 频道构建版本。 Dev 与 Canary build 都是开发者预览版&#xff0c;同属…

下载和安装R、RStudio !

现如今&#xff0c;R语言是统计领域广泛使用的工具&#xff0c;是属于GNU系统的一个自由、免费、源代码开放的软件&#xff0c;是用于统计计算和统计绘图的优秀工具。而RStudio是R的集成开发环境&#xff0c;用它进行R编程的学习和实践会更加轻松和方便。下面就教大家如何下载并…

豆瓣首页话题输入框的实现

在做问答的时候&#xff0c;遇到一个需求&#xff0c;用户的问题需要限制字数&#xff0c;不仅显示计算的超出字数&#xff0c;还需在超出的内容上加一些提醒的效果&#xff0c;例如豆瓣首页的话题输入框&#xff0c;抽时间研究了下&#xff0c;需要考虑下面几个问题&#xff1…