Description

Input

Output

Sample Input

4 5
1 2
2 3
3 4
4 1
2 4
3
1 5
2 2 3
2 1 2

Sample Output

Connected
Disconnected
Connected

HINT

N<=100000 M<=200000 K<=100000

自己yy的奇怪解法,首先我们可以发现一张图在联通的时候并查集祖先的$size=n$(这不是废话)

然后就只要线段树分治随便维护一下并查集就完事了

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<map>
#define ls node<<1
#define rs node<<1|1
#define M 200010
#define mod 1000000007
using namespace std;
struct point{int u,v;}p[M],st[M];
int n,m,k,top;
int size[M],fa[M],f[M];
vector<int>tag[M<<];
int find(int x) {
while(x!=fa[x]) x=fa[x];
return fa[x];
}
void insert(int node,int l,int r,int l1,int r1,int id) {
if(l1<=l&&r1>=r) {
tag[node].push_back(id);return;
}int mid=(l+r)/;
if(l1<=mid) insert(ls,l,mid,l1,r1,id);
if(r1>mid) insert(rs,mid+,r,l1,r1,id);
}
void unionn(int x,int y) {
x=find(x),y=find(y);
if(x==y) return;
if(size[x]<size[y]) swap(x,y);
st[++top]=(point){x,y};
size[fa[y]=x]+=size[y];
}
void Del(int now) {
while(top!=now) {
int x=st[top].u,y=st[top--].v;
size[x]-=size[fa[y]=y];
}
}
void Dfs(int node,int l,int r) {
int now=top;
for(int i=;i<tag[node].size();i++)
unionn(p[tag[node][i]].u,p[tag[node][i]].v);
if(l==r) {
int x=;
while(fa[x]!=x) x=fa[x];
puts(size[x]==n?"Connected":"Disconnected");
}
else {
int mid=(l+r)/;
Dfs(ls,l,mid),Dfs(rs,mid+,r);
}
Del(now);
}
int main() {
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) fa[i]=i,size[i]=;
for(int a,b,i=;i<=m;i++) {
scanf("%d%d",&a,&b);f[i]=;
p[i]=(point){a,b};
}
scanf("%d",&k);
for(int i=;i<=k;i++) {
int c;scanf("%d",&c);
for(int j=;j<=c;j++) {
int id;scanf("%d",&id);
if(f[id]!=i) insert(,,k,f[id],i-,id);
f[id]=i+;
}
}
for(int i=;i<=m;i++)
if(f[i]!=k+)
insert(,,k,f[i],k,i);
Dfs(,,k);
return ;
}

[BZOJ3237]连通图的更多相关文章

  1. [BZOJ3237][AHOI2013]连通图(分治并查集)

    3237: [Ahoi2013]连通图 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1736  Solved: 655[Submit][Status ...

  2. bzoj3569 DZY Loves Chinese II & bzoj3237 [AHOI2013] 连通图

    给一个无向连通图,多次询问,每次询问给 k 条边,问删除这 k 条边后图的连通性,对于 bzoj3237 可以离线,对于 bzoj3569 强制在线 $n,m,q \leq 500000,k \leq ...

  3. 【bzoj3237】 Ahoi2013—连通图

    http://www.lydsy.com/JudgeOnline/problem.php?id=3237 (题目链接) 题意 给出一个无向图,$Q$组询问,每次询问将原图断掉$C$条边后是否还连通. ...

  4. 【BZOJ3237】【AHOI2013】连通图 [CDQ分治]

    连通图 Time Limit: 20 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input Output Sampl ...

  5. BZOJ3237: [Ahoi2013]连通图

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3237 cdq分治+缩点. 可以每次处理的时候把除l~r之外的边的端点都连起来.然后去跑cdq分 ...

  6. BZOJ3237:[AHOI2013]连通图(线段树分治,并查集)

    Description Input Output Sample Input 4 5 1 2 2 3 3 4 4 1 2 4 3 1 5 2 2 3 2 1 2 Sample Output Connec ...

  7. BZOJ3237 AHOI2013连通图(线段树分治+并查集)

    把查询看做是在一条时间轴上.那么每条边都有几段存在时间.于是线段树分治就好了. 然而在bzoj上t掉了,不知道是常数大了还是写挂了. 以及brk不知道是啥做数组名过不了编译. #include< ...

  8. 2018.10.01 bzoj3237: [Ahoi2013]连通图(cdq分治+并查集)

    传送门 cdq分治好题. 对于一条边,如果加上它刚好连通的话,那么删掉它会有两个大集合A,B.于是我们先将B中禁用的边连上,把A中禁用的边禁用,再递归处理A:然后把A中禁用的边连上,把B中禁用的边禁用 ...

  9. BZOJ 3237([Ahoi2013]连通图-cdq图重构-连通性缩点)

    3237: [Ahoi2013]连通图 Time Limit: 20 Sec   Memory Limit: 512 MB Submit: 106   Solved: 31 [ Submit][ St ...

随机推荐

  1. 【BZOJ3203】[Sdoi2013]保护出题人 二分+凸包

    [BZOJ3203][Sdoi2013]保护出题人 Description Input 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离.接下来n行每行两个空格隔开的正整数,第i + ...

  2. 【BZOJ1645】[Usaco2007 Open]City Horizon 城市地平线 离散化+线段树

    [BZOJ1645][Usaco2007 Open]City Horizon 城市地平线 Description Farmer John has taken his cows on a trip to ...

  3. ios 的ASIHTTPRequest学习

    发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件.所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到). - (I ...

  4. oneThink发生错误,获取当前执行的SQL语句!

    echo D('AnswerInfoView')->getLastSql();die();

  5. JS--页面返回/跳转/刷新(转载)

    原文: Javascript 返回上一页1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3 ...

  6. 170717、springboot编程之mybatis数据库开发和aop拦截

    一.springboot整合mybaits (1)新建maven project; 新建一个maven project,取名为:spring-boot-mybatis (2)在pom.xml文件中引入 ...

  7. 磁盘 I/O 性能监控的指标

    指标 1:每秒 I/O 数(IOPS 或 tps) 对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和.当传输小块不连续数据时,该 ...

  8. http和socket之长连接和短连接区别

    TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应 ...

  9. (windows下)tomcat优化--内存,并发.缓存三方面优化

    一.内存 注: jdk1.8中废弃了-XX:PermSize和-XX:MaxPermSize的持久态(存放常量.静态变量区)配置, 多了一个元数据区(Metadata Space:默认为内存的0.2% ...

  10. Shader工具

    1. RenderMonkey 2. NVIDIA FX Composer 2.5