原题链接

点双联通分量(v-DCC, 无向图的极大点双连通子图):

①当第一个节点第一次被访问时,把该节点入栈.
②当dfn[x] <= low[y]成立时(1)从栈顶不断弹出节点,直至节点y被弹出(2)刚才弹出的所有节点与节点x一起构成一个v-DCC.

#include <bits/stdc++.h>using namespace std; inline int read() {int x = 0, f = 0; char ch = getchar();while (!isdigit(ch)) f = ch == '-', ch = getchar(); while (isdigit(ch)) x = (x << 3) + (x << 1) + (ch ^ 48), ch = getchar(); return f ? -x : x;
}void print(int x) {if (x < 0) x = -x, putchar('-'); if (x < 10) putchar(x + '0'); else {print(x / 10); putchar(x % 10 + '0'); }
}const int N = 5e4 + 5, M = 3e5 + 5;
int n, m, rt, head[N], nex[M << 1], ver[M << 1], tot;
int dfn[N], low[N], cut[N], num;
int stk[N], top;
vector<int> dcc[N]; int cnt; void Addedge(int x, int y) { ver[++tot] = y; nex[tot] = head[x]; head[x] = tot; }void tarjan(int x) {dfn[x] = low[x] = ++num; stk[++top] = x; if (x == rt && !head[x]) {//      dcc[++cnt].push_back(x); return; }int flag = 0; for (int i = head[x]; i; i = nex[i]) {int y = ver[i];  if (!dfn[y]) {tarjan(y); low[x] = min(low[x], low[y]); if (low[y] >= dfn[x]) {++flag; if (x != rt || flag > 1) cut[x] = true; ++cnt; int z; do {z = stk[top--]; dcc[cnt].push_back(z); } while (z != y); dcc[cnt].push_back(x);}} else low[x] = min(low[x], dfn[y]);}
}bool cmp(vector<int> a, vector<int> b) {int mi = min(a.size(), b.size()); for (int i = 0; i < mi; ++i) {if (a[i] != b[i]) return a[i] < b[i]; }return a.size() < b.size();
}int main() {n = read(); m = read(); while (m--) {int uu = read(), vv = read(); Addedge(uu, vv); Addedge(vv, uu); }for (int i = 1; i <= n; ++i) {if (!dfn[i]) {rt = i; tarjan(i); }}print(cnt); putchar('\n'); for (int i = 1; i <= cnt; ++i) sort(dcc[i].begin(), dcc[i].end());sort(dcc + 1, dcc + cnt + 1, cmp); for (int i = 1; i <= cnt; ++i) {for (vector<int>::iterator it = dcc[i].begin(); it != dcc[i].end(); ++it) {print(*it); putchar(' '); }putchar('\n'); }return 0;
}

B3610 [图论与代数结构 801] 无向图的块相关推荐

  1. 0x66.图论 - Tarjan算法与无向图连通性

    目录 一.无向图的割点与桥 割点 桥/割边 时间戳 搜索树 追溯值 二.割边判定法则 三.割点判定法则 1.luogu P3388 [模板]割点(割顶) 2.luogu P3469 [POI2008] ...

  2. 数据结构之图:加权无向图与寻找最小生成树,Python——27

    加权无向图与prim算法和Kruskal算法寻找最小生成树 加权无向图的介绍 引入 加权无向图是一种为每条边关联一 个权重值或 是成本的图模型.这种图能够自然地表示许多应用.在一副航空图中,边表示航线 ...

  3. 无向图的最大团/最大独立集 算法总结

    无向图的最大团/最大独立集 算法总结 目录 概述 普通DFS Bron-Kerbosch算法 概述 最大团其实就是最大完全子图的点集,同理极大团也就是极大完全子图的点集,点集内所有的点两两之间都有边相 ...

  4. 无向图的最大团/最大独立集

    讲解的博客:https://blog.csdn.net/SparkFucker/article/details/83051133 还没写完的代码: #include<iostream> # ...

  5. 【数学建模】图论模型(基础理论+最大流与最小费用流问题)

    图论模型 基础理论 1.无向图与有向图 有向图的边称为弧,有向图一般记为 D = ( V , A ) D=(V,A) D=(V,A),其中 V V V 为顶点集, A A A 为弧集. 边的表示 ( ...

  6. acm算法模板(1)

    1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几 ...

  7. 想要成为推荐算法工程师,都要准备哪些东西

    作者在<推荐算法工程师的成长之道>这篇文章中讲到推荐算法工程师是一个好的职业选择,并且讲解了职业发展路径及定位.怎么成长等话题(还没看的可以看起来). 如果大家认可我讲的并且也愿意将来从事 ...

  8. 杭电oj题目题型分类(转)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  9. HDOJ题目分类大全

    版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...

  10. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

最新文章

  1. 在ARC环境中autoreleasepool(runloop)的研究
  2. java urlrewriter_java url重写技术(UrlReWriter)
  3. QML Imports声明
  4. MybatisPlus_进阶
  5. 实验一 线性表的顺序存储与实现_【自考】数据结构中的线性表,期末不挂科指南,第2篇
  6. jQuery得事件绑定
  7. fwoa中做excel导入时page理解
  8. Perl 文件和文件夹操作
  9. 餐饮加盟推广遇到抖音下拉词框会碰撞出什么样的火花
  10. Python面向对象(初识)
  11. 修改默认启动操作系统
  12. 【零基础】PostgreSQL从入门到精通
  13. JAVA计算机毕业设计钢材商贸公司网络购销管理系统Mybatis+系统+数据库+调试部署
  14. Yolov4部署到ZYNQ系列1-USB转UART驱动不在COM和LPT显示问题的解决方案
  15. python是一种什么类型的编程_python是什么类型的编程语言
  16. 前端团队研发效能提升的探索与实践
  17. 【Linux入门】— 腾讯云服务器的搭建
  18. 公司测试部门来了个00后卷王,老油条感叹真干不过,不过.....
  19. 在一个项目编译多个不同签名、包名、资源实现apk换皮
  20. android 腾讯视频 dlan,腾讯视频dlna在哪里

热门文章

  1. 数据库系统概念第六版 第八章练习题 2 3 9
  2. 学生用计算机如何解方程,学生党必备神器!一键解方程计算器App
  3. android投屏小米盒子,Mibox S 小米盒子国际版:可能是 2019 新年最值的原生 AndroidTV...
  4. 基于Python和OpenCV的图像目标检测及分割
  5. iphone配置实用工具iPhone Configuration Utility
  6. 如何制作万有特性曲线图
  7. logistic回归详解
  8. think-cell 加载项在 Office 出现故障后消失,怎么解决?
  9. 树莓派4b自带wifi_树莓派4B wifi开机启动
  10. 使用NATAPP内网穿透