Luogu P1197
按题意想,每次都删掉我们所删的点的所有边,再判一下有多少连通块,复杂度肯定不够。
我们可以反着想,我们把正着删除,看成倒着建,这样就简单了。
#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相关推荐
- Luogu P1197 [JSOI2008]星球大战
经巨佬们指教,得知要用:逆向思维法(这个一定要想到啊QwQwQ) 之后想了想,发现我大致思路跟第一篇题解比较像(后来AC代码的细节不一样,我是在每次'恢复'循环开始时计数的,题解是循环末尾,大同小异吧 ...
- P1197 [JSOI2008]星球大战~写题笔记
题目:https://www.luogu.org/problemnew/show/P1197 #include<iostream> #include<algorithm> #i ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- [Luogu] 选学霸
https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...
- Luogu 2470 [SCOI2007]压缩
和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...
- 【Luogu】P1613 跑路
[Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...
- Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...
- Luogu P3177 [HAOI2015] 树上染色(树上背包)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...
- Luogu P4178 Tree (点分治 + 树状数组)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4178 Prob ...
最新文章
- Balkan2007]Toponyms[链式前向星建字典树+getchar()读入优化]
- maven3常用命令、java项目搭建、web项目搭建
- pual_bot 天气插件编写
- uni-app-微信小程序实现输入卡号 每四个为一组中间为空格(也可以取消空格)
- mysql 选择特定的表_MySQL选择具有多个特定列的所有表
- php class行为,PHP CLASS
- IntObjectHashMap和HashMap的区别?
- 小程序切换账户拉取仓库文件的appid提示
- 有没有网上python一对一-使用Python的Tornado框架实现一个一对一聊天的程序
- C# 给Excel添加水印
- CS231n课程笔记翻译2:图像分类笔记
- 图像和像素(Images and Pixels)
- 面试官:递归是个什么东东?
- Android 多进程的基础使用及优缺点
- linux下的通配符与特殊符号
- 平面设计中的网格系统pdf_【200421】平面设计必看书籍超越平凡的设计平面设计中的网格系统等|电子书资源免费分享...
- 解决Mac能接受qq消息但打不开网页的问题
- 我们小公司使用了6年的项目部署方案,打包 + 一键部署详解,稳的一批
- vim编辑器中cscope自动加载cscope.out文件的方法
- Golang中的strings.Builder