对并查集做前后缀和。
对于并查集的前后缀中的节点i来说,如果它在前缀后所属的连通块与它在后缀中所属的连通块不同,那么说明i就是前后缀两个不同连通块的连接点,所以可以把前后缀的两个不同连通块,并为同一连通块。
之后就是求连通块个数即可。
#include <bits/stdc++.h>
using namespace std;
const int M=1e4+5,N=505;
int n,m,xx,yy,ans,q,x,y;
int u[M],v[M],l[M][N],r[M][N],f[N];int find(int x,int i)
{if (l[i][x]==x) return x;return l[i][x]=find(l[i][x],i);
}
int find2(int x,int i)
{if (r[i][x]==x) return x;return r[i][x]=find2(r[i][x],i);
}
int find3(int x)
{if (f[x]==x) return x;return f[x]=find3(f[x]);
}int main(){scanf("%d%d",&n,&m);for (register int i=1; i<=m; ++i) scanf("%d%d",&u[i],&v[i]);for (register int i=1; i<=n; ++i) l[0][i]=i;for (register int i=1; i<=m; ++i){//for (register int j=1; j<=n; ++j) l[i][j]=l[i-1][j];memcpy(l[i],l[i-1],sizeof(l[i]));xx=find(u[i],i); yy=find(v[i],i);if (xx!=yy) l[i][xx]=yy;}for (register int i=1; i<=n; ++i) r[m+1][i]=i;for (register int i=m; i>=1; --i){memcpy(r[i],r[i+1],sizeof(r[i]));xx=find2(u[i],i); yy=find2(v[i],i);if (xx!=yy) r[i][xx]=yy;}scanf("%d",&q);while (q--){scanf("%d%d",&x,&y);for (register int i=1; i<=n; ++i) f[i]=l[x-1][i];ans=0;for (register int i=1; i<=n; ++i){xx=find3(f[i]); int now=find2(r[y+1][i],y+1);yy=find3(now);if (xx!=yy) f[xx]=yy;    }for (register int i=1; i<=n; ++i) if (find3(i)==i) ans++;printf("%d\n",ans);}
return 0;
}

Connected Components相关推荐

  1. JavaScript实现strongly Connected Components 强连通分量算法(附完整源码)

    JavaScript实现strongly Connected Components 强连通分量算法(附完整源码) Comparator.js完整源代码 LinkedListNode.js完整源代码 L ...

  2. OpenCV连接的组件Connected Components的实例(附完整代码)

    OpenCV连接的组件Connected Components的实例 OpenCV连接的组件Connected Components的实例 OpenCV连接的组件Connected Component ...

  3. Educational Codeforces Round 37 (Rated for Div. 2) E. Connected Components? 暴力 + 补图的遍历

    传送门 文章目录 题意: 思路: 题意: n≤2e5,m≤2e5n\le2e5,m\le2e5n≤2e5,m≤2e5. 思路: 这是题是我上个题的一部分,算是个小知识点,暴力能过. 直接维护一个set ...

  4. 【CodeForces - 920E】Connected Components? (dsu,补图连通块,STLset+map,bfs 或bitset)

    题干: You are given an undirected graph consisting of n vertices and  edges. Instead of giving you the ...

  5. [Swift]LeetCode323. 无向图中的连通区域的个数 $ Number of Connected Components in an Undirected Graph...

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  6. connected components algorithm连通组件算法

    connected components algorithm连通图算法 什么是connected components algorithm? 用通俗的话说就是一个图像的前景部分有几部分构成,用下面的这 ...

  7. 大数据——GraphX之Connected Components算法及Spark实现

    GraphX之Connected Components算法及Spark实现 Connected Components Demo 扩展 Connected Components 源码 Compute t ...

  8. Tarjan's strongly connected components algorithm的一些想法

    Tarjan的极大强连通子图(strongly connected components,SCC)算法基于深度优先遍历(DFS)实现.本文就尝试从深度优先遍历的角度思考一下Tarjan的方法是如何找出 ...

  9. 强连通分量(strongly connected components)

    强连通分量(strongly connected components)    徐不可说        2018/8/4                                        ...

  10. FDS-HW11 6-1 Strongly Connected Components

    Strongly Connected Components 堆栈C语言实现:https://www.cnblogs.com/tingshuo123/p/7090858.html 思路分析 使用tarj ...

最新文章

  1. Intellij IDEA eclipse项目导入
  2. XML Parser(Tinyxml)的使用
  3. IT专案管理中的风险控制。
  4. 计算机科学与技术初级知识,计算机科学与技术专业课程有哪些
  5. C# 方法返回值的个数
  6. Java使用Redis
  7. 沪江日语电台首度在线直播后续花絮(附直播片段)
  8. 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)
  9. 深圳小库科技招聘高级前端
  10. ScienceWord控件问题以及IE8对于base64编码图片长度限制的解决方案
  11. Laravel——微信授权登陆
  12. 程序员面试必问:你为什么要离开上一家公司。你会怎么回答?
  13. 小度独立融资,百度上演“大象跳舞”
  14. 008 怎么取消隐藏文件扩展名
  15. Android 更改menu的背景颜色和字体颜色
  16. js 实现统计网站访问量
  17. C语言输入10个分数 去掉最高分,vb输入10个评委给出的分数,去掉最高分和最低分,计算平均分并输出...
  18. 基于神经网络的房屋价格预测
  19. Unity更改模型贴图像素点颜色报错
  20. 字体引入,不生效问题解决

热门文章

  1. 浪潮服务器没有报警灯开机无显示,开机后电源正常,显示器不亮,也没有自检的声音,而且开机后也没...
  2. 关于.NET写数据到MySQL乱码的问题
  3. SCVMM 2012R2 集群 升级 2016 后 问题解决记录 -- 日常维护
  4. 从搜狐畅游“揭露门”看网游企业管理
  5. textarea不显示边框_飞利浦256P1FR显示器评测:QHD分辨率微窄边设计
  6. 从零开始的AI绘画:MidJourney带你掌握AI绘画的基础和高级技巧
  7. 等保测评--通信网络安全测评要求
  8. spring 配置连接池时 各个属性的介绍
  9. ESP32读取甲醛传感器数据
  10. 博通卖掉赚钱的物联网部门,奥妙在哪里?