当前位置: 首页 > news >正文

wordpress 读者墙/百度seo优化软件

wordpress 读者墙,百度seo优化软件,推动品牌建设的网站,幼教资源网网站开发策划书割点 在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多,就称这个点集为割点集合。 注意: 1、讨论割点是在无向图中。 2、删除这个点使图的联通分量增多…

割点

在一个无向图中,如果有一个顶点集合,删除这个顶点集合以及这个集合中所有顶点相关联的边以后,图的连通分量增多,就称这个点集为割点集合。

注意:
1、讨论割点是在无向图中。
2、删除这个点使图的联通分量增多就是割点,所以非连通图也有割点。


割边(桥)

假设有连通图G,e是其中一条边,如果G-e是不连通的,则边e是图G的一条割边。此情形下,G-e必包含两个连通分支。

为什么必包含两个?因为一条边最多连两个点。。。


强推这位大佬的博客,写的非常认真非常详细,非常感谢!

我就不多介绍了,再说就是误导人了

没错我就是来发个模板的,大家可以参考参考,还是满规范的

模板题:P3388 【模板】割点(割顶)

割点割边写起来比缩点还是短不少的。

#include <iostream>
#include <vector>
using namespace std;const int maxn = 10010;
int n, m, id = 0;
int cut[maxn] = {};
vector<int> G[maxn];
int dfn[maxn] = {}, low[maxn];void tarjan(int u, int root)
{int child = 0;dfn[u] = low[u] = ++id;for (size_t i = 0; i < G[u].size(); ++i) {int v = G[u][i];if (dfn[v] == 0) {tarjan(v, root);low[u] = min(low[u], low[v]);if (u != root && low[v] >= dfn[u]) cut[u] = true;if (u == root) child++;}low[u] = min(low[u], dfn[v]);}if (u == root && child >= 2) cut[root] = true;
}int main()
{cin >> n >> m;for (int i = 1; i <= m; ++i) {int x, y;cin >> x >> y;G[x].push_back(y);G[y].push_back(x);}for (int i = 1; i <= n; ++i) {if (dfn[i] == 0) tarjan(i, i);}int ans = 0;for (int i = 1; i <= n; ++i) {if (cut[i]) ans++;}cout << ans << endl;for (int i = 1; i <= n; ++i) {if (cut[i]) cout << i << ' ';}cout << endl;
}

割边(无模板题),换链式前向星来存图。

#include <iostream>
using namespace std;struct Edge {int to, next;
};const int maxn = 10010;
int n, m, id = 0, cnt = 1;
Edge edge[maxn], cut[maxn];
int dfn[maxn] = {}, low[maxn];
int head[maxn] = {}, baba[maxn] = {};
int tou[maxn] = {};void Add(Edge *edge, int u, int v, int *head)
{edge[cnt].to = v;edge[cnt].next = head[u];head[u] = cnt++;
}void tarjan(int u)
{dfn[u] = low[u] = ++id;for (int i = head[u]; i; i = edge[i].next) {int v = edge[i].to;if (baba[u] == v) continue;if (dfn[v] == 0) {baba[v] = u;tarjan(v);low[u] = min(low[u], low[v]);if (low[v] > dfn[u]) Add(cut, u, v, tou);}low[u] = min(low[u], dfn[v]);}
}int main()
{cin >> n >> m;for (int i = 1; i <= m; ++i) {int x, y;cin >> x >> y;Add(edge, x, y, head);Add(edge, y, x, head);}for (int i = 1; i <= n; ++i) {if (dfn[i] == 0) tarjan(i);}for (int u = 1; u <= n; ++u) {for (int i = tou[u]; i; i = cut[i].next) {cout << u << ' ' << cut[i].to << endl;}}
}
http://www.jmfq.cn/news/5125573.html

相关文章:

  • 忆唐网不做网站做品牌/厦门seo培训学校
  • wordpress多站显示不正常/搜索引擎优化是指什么意思
  • 邢台做网站的那好/宁波百度关键词推广
  • 网站里的轮廓图 怎么做的/百度广告客服电话
  • 那些网站可以做行测题/图片优化网站
  • 响应式网站代理/新品上市的营销方案
  • 中小学网站建设/外贸网站建设案例
  • asp.net做织梦网站/百度热榜实时热点
  • 机械厂做的网站模板叫什么/win10优化大师官网
  • 威海哪里可以建设企业网站/站长工具seo综合查询可以访问
  • 做图骂人的图片网站/培训班管理系统 免费
  • 衡水网站建设浩森宇特/朝阳seo推广
  • 域名解析要登入哪个网站做/广州市口碑全网推广报价
  • 免费做的网站怎么设置域名解析/seo网站推广批发
  • 网站更换空间后排名消失 首页被k/宁波seo快速优化
  • 广州网站建设学习/做网站多少钱一年
  • esp8266做网站/沈阳seo代理计费
  • 广西网站建设费用/站长工具爱情岛
  • 怎么在云服务器上搭建网站/八百客crm系统登录入口
  • 北京移动网站建设/互联网营销课程体系
  • 展台展览/windows优化大师官方免费
  • ruhe用dw做网站/什么关键词能搜到资源
  • 网站开发实验报告可行性分析/网店推广的方式
  • 在线3d建模网站/营销网站大全
  • wordpress防刷/seo推广优化工具
  • Wordpress 修改 mysql 插件/衡水seo营销
  • 我们做网站 老公弟弟也跟着做/游戏推广员骗局
  • 毕业设计做网站怎样的工作量算达标/商业软文案例
  • 人才市场官方网站/品牌策划包括哪几个方面
  • 网站地址搜索/网络推广培训去哪里好