<并查集>luogu 1197 星球大战
来源:互联网 发布:基于大数据用户画像 编辑:程序博客网 时间:2024/06/04 19:05
去题面的传送门
记得之前做过一个跟这个题很类似的。那道题是每次删一条边,问联通块的个数。正解就是离线处理,然后倒序加边,用并查集维护。而这道题是删点,同样想到离线处理然后倒序加点,唯一的不同是这道题要把这个点连接的所有边都for一遍。。。
话不多说,上代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=200000+100;int cnt,n,m,k;int fist[maxn<<1],nxt[maxn<<1],num[maxn<<1],ans[maxn<<1],fa[maxn<<1];bool vis[maxn<<1];struct hh{ int f,t;}e[maxn<<1];void build(int f,int t){ e[++cnt]=(hh){f,t}; nxt[cnt]=fist[f]; fist[f]=cnt;}int find(int x){ if(fa[x]==x) return x; return fa[x]=find(fa[x]);}int main(){ memset(fist,-1,sizeof(fist)); scanf("%d%d",&n,&m); for(int i=1;i<=m;++i) { int x,y; scanf("%d%d",&x,&y); build(x,y); build(y,x); } scanf("%d",&k); for(int i=1;i<=k;++i) { scanf("%d",&num[i]); vis[num[i]]=true; } for(int i=1;i<=n;++i) fa[i]=i; ans[k+1]=n-k; for(int i=1;i<=cnt;i+=2) { int u=e[i].f,v=e[i].t; int f1=find(u),f2=find(v); if(!vis[u]&&!vis[v]&&f1!=f2) { f1=fa[f2]; ans[k+1]--; } } for(int i=k;i>=1;--i) { ans[i]=ans[i+1]+1; int u=num[i]; vis[u]=false; for(int j=fist[u];j!=-1;j=nxt[j]) { int v=e[j].t; if(vis[v]) continue; int f1=find(u),f2=find(v); if(f1!=f2) { ans[i]--; fa[f1]=f2; } } } for(int i=1;i<=k+1;++i) printf("%d\n",ans[i]); return 0;}
阅读全文
0 0
- <并查集>luogu 1197 星球大战
- 洛谷 1197 [JSOI2008]星球大战 并查集
- luogu P1197 [JSOI2008]星球大战 并查集 逆向思维 邻接表
- 【BZOJ1015】星球大战 并查集
- 洛谷 并查集 星球大战.
- 星球大战 JSOI2008 并查集
- BZOJ[1015]洛谷[1197]星球大战 并查集
- 洛谷 1197 星球大战 并查集 解题报告
- LUOGU 1196 并查集
- luogu p1111 并查集
- 【BZOJ1015】[JSOI2008]星球大战starwar 并查集
- 【bzoj1015】【JSOI2008】【星球大战】【并查集+离线】
- 【bzoj1015】【JSOI2008】【星球大战】【starwar】【并查集】
- BZOJ1015 星球大战starwar (并查集)
- [BZOJ1015][JSOI2008]星球大战starwar-并查集
- [JSOI2008]星球大战(并查集)
- 【JSOI2008】星球大战 (并查集)
- BZOJ 1015 星球大战 逆向并查集
- Java中单例模式
- PHP编译参数
- 【深度学习】使用tensorflow实现VGG19网络
- Vivado中仿真DDS核注意事项即仿真IP核时需要注意的事项
- AJAX
- <并查集>luogu 1197 星球大战
- 第五周 项目1
- OkHttp接入HttpDNS,最佳实践
- 阿里巴巴Java开发规约插件使用
- python 定义函数
- Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
- bjui用框架提交form表单
- YUMI(多重启动u盘制作工具)官方正式版V2.0.5.0下载 | YUMI UEFI | yumi多重启动u盘制作工具
- 网页知识