题面

并查集处理问题的基本思路:如果不是强制在线那么可以倒着处理,把删边改为可爱的加边,然后使用并查集来判断是否联通;

所以可以较为轻松的写出AC代码:

#include <bits/stdc++.h>
using namespace std;
int n,m;
int f[];
struct littlestar{
int to;
int nxt;
}star[];
int head[],cnt;
inline void add(int u,int v)
{
star[++cnt].to=v;
star[cnt].nxt=head[u];
head[u]=cnt;
}
int ask[];
inline int zhaobaba(int x)
{
if(f[x]==x){
return x;
}
return f[x]=zhaobaba(f[x]);
}
int bo[];
int vis[];
int lala[];
int main()
{
cin>>n>>m;
for(register int i=;i<=n;i++){
f[i]=i;
}
for(register int i=;i<=m;i++){
int u,v;
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
}
int k;
cin>>k;
for(register int i=;i<=k;i++){
scanf("%d",&ask[i]);
bo[ask[i]]=;
}
int ans=n-k;
for(register int u=;u<=n;u++){
if(bo[u]) continue;
else{
for(register int i=head[u];i;i=star[i].nxt){
int v=star[i].to;
if(bo[v]) continue;
int fx=zhaobaba(u);
int fy=zhaobaba(v);
if(fx!=fy){
f[fy]=fx;
--ans;
}
}
}
}
for(register int u=k;u>=;u--){
lala[u+]=ans;
++ans;
bo[ask[u]]=;
for(register int i=head[ask[u]];i;i=star[i].nxt){
int v=star[i].to;
if(bo[v]) continue;
int fx=zhaobaba(ask[u]);
int fy=zhaobaba(v);
if(fx!=fy){
f[fy]=fx;
if(!vis[fy]){
--ans;
vis[fy]=;
}
}
}
}
lala[]=ans;
for(register int i=;i<=k+;i++){
printf("%d\n",lala[i]);
}
}

最新文章

  1. Java学习之反射机制及应用场景
  2. Nodejs实现简单的反向代理
  3. 组合模式/composite模式/对象结构型模式
  4. spring注解配置实例
  5. HTML知识点01
  6. SU Demos-07NMO
  7. Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持
  8. Android 添加Button事件
  9. 【Java基础】Java类及成员和修饰符的关系
  10. 怎样创建TWaver 3D的轮廓选中效果
  11. 一个强大的LogParser的UI工具--logparserlizard简介(开源IIS日志分析工具)
  12. hdu 1205
  13. Jquery与DOM对象
  14. (转)WCF中调用WebService出错,大家帮忙看看,回答就有分
  15. WPF 3D:使用变换中的TranslateTransform3D
  16. List subList()的一个demo
  17. 微信小程序的动画效果
  18. Redis集群分布
  19. 【Android Studio安装部署系列】四、Android SDK目录和作用分析
  20. Tomcat安装教程

热门文章

  1. 大哥带的JavaScript伪协议
  2. ContentLoadingProgressBar
  3. javascript模块化之CommonJS、AMD、CMD、UMD、ES6
  4. leetcode-easy-dynamic-198 House Robber-NO
  5. python MySQLdb 如何设置读超时read_timeout
  6. leetcode 454 四数相加
  7. 深入解析CNN pooling 池化层原理及其作用
  8. 保存json数据到本地和读取本地json数据
  9. oracle 创建多个数据库
  10. Python学习之==&gt;条件判断