按题意想,每次都删掉我们所删的点的所有边,再判一下有多少连通块,复杂度肯定不够。

我们可以反着想,我们把正着删除,看成倒着建,这样就简单了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 400005
const long double pi=3.141592653589793238462643383279502884;
#define M(x) memset(x,0,sizeof(x))
const ll mod=1e9+7;
ll f[N],n,m,k,x,res;
ll r[N],ans[N];
struct dd
{ll u,v,xu;inline bool operator <(const dd &t)const//按序号排个序{return xu<t.xu;}
}p[N];
ll _find(ll x)
{return f[x]==x?x:(f[x]=_find(f[x]));
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int _=1;//cin>>_;while(_--){cin>>n>>m;for(int i=0;i<n;++i)f[i]=i;res=n;//刚开始都不相连,n个连通块for(int i=1;i<=m;++i)cin>>p[i].u>>p[i].v,p[i].xu=0;cin>>k;for(int i=k;i>=1;--i){cin>>x;r[x]=i;//第一次删的我们最后接,最后一次删的我们第一次就接}for(int i=1;i<=m;++i)p[i].xu=max(r[p[i].u],r[p[i].v]);//边中两个点只有都接上这个边才出现sort(p+1,p+1+m);for(int i=0,now=1;i<=k;++i){while(p[now].xu==i)//这个边可以接上去了{ll tx=_find(p[now].u),ty=_find(p[now].v);//开始判联通if(tx!=ty)f[tx]=ty,--res;//连上去一个,连通块数量减少++now;}ans[i]=res-k+i;}for(int i=k;i>=0;--i)cout<<ans[i]<<'\n';}return 0;
}

Luogu P1197相关推荐

  1. Luogu P1197 [JSOI2008]星球大战

    经巨佬们指教,得知要用:逆向思维法(这个一定要想到啊QwQwQ) 之后想了想,发现我大致思路跟第一篇题解比较像(后来AC代码的细节不一样,我是在每次'恢复'循环开始时计数的,题解是循环末尾,大同小异吧 ...

  2. P1197 [JSOI2008]星球大战~写题笔记

    题目:https://www.luogu.org/problemnew/show/P1197 #include<iostream> #include<algorithm> #i ...

  3. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

  4. [Luogu] 选学霸

    https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...

  5. Luogu 2470 [SCOI2007]压缩

    和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...

  6. 【Luogu】P1613 跑路

    [Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...

  7. Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...

  8. Luogu P3177 [HAOI2015] 树上染色(树上背包)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...

  9. Luogu P4178 Tree (点分治 + 树状数组)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...

最新文章

  1. Balkan2007]Toponyms[链式前向星建字典树+getchar()读入优化]
  2. maven3常用命令、java项目搭建、web项目搭建
  3. pual_bot 天气插件编写
  4. uni-app-微信小程序实现输入卡号 每四个为一组中间为空格(也可以取消空格)
  5. mysql 选择特定的表_MySQL选择具有多个特定列的所有表
  6. php class行为,PHP CLASS
  7. IntObjectHashMap和HashMap的区别?
  8. 小程序切换账户拉取仓库文件的appid提示
  9. 有没有网上python一对一-使用Python的Tornado框架实现一个一对一聊天的程序
  10. C# 给Excel添加水印
  11. CS231n课程笔记翻译2:图像分类笔记
  12. 图像和像素(Images and Pixels)
  13. 面试官:递归是个什么东东?
  14. Android 多进程的基础使用及优缺点
  15. linux下的通配符与特殊符号
  16. 平面设计中的网格系统pdf_【200421】平面设计必看书籍超越平凡的设计平面设计中的网格系统等|电子书资源免费分享...
  17. 解决Mac能接受qq消息但打不开网页的问题
  18. 我们小公司使用了6年的项目部署方案,打包 + 一键部署详解,稳的一批
  19. vim编辑器中cscope自动加载cscope.out文件的方法
  20. Golang中的strings.Builder

热门文章

  1. Java自由虾旅行平台菜单功能
  2. light-bot小游戏
  3. 如何用Amira分割DICOM图像
  4. ps如何放大缩小图层
  5. 用python编写猜拳游戏
  6. 中文计算机期刊影响因子排名,最新计算机类中文核心期刊影响因子排名
  7. [附源码]java毕业设计高校学生疫情防控信息管理系统
  8. C++OpenCV矩形的角点检测与坐标提取,基于fast特征点
  9. (附源码)基于PHP的酒店住宿管理系统 毕业设计 261455
  10. Android 隐藏虚拟按键,并且全屏