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

网站备案 暂住证福州短视频seo方法

网站备案 暂住证,福州短视频seo方法,ctb自己做网站,长春经开人才网【题目链接】 ybt 1522:网络 OpenJudge 百练 1144:Network 【题目考点】 1. 图论:割点 【解题思路】 每个交换机是一个顶点,如果两地点之间有电话线连接,那么两顶点之间有一条无向边,该图是无向图。 初始时任何地…

【题目链接】

ybt 1522:网络
OpenJudge 百练 1144:Network

【题目考点】

1. 图论:割点

【解题思路】

每个交换机是一个顶点,如果两地点之间有电话线连接,那么两顶点之间有一条无向边,该图是无向图。
初始时任何地点之间都是可以通讯的,也就是说这是一个无向连通图。
如果一个交换机停止工作,导致其它一些地点不能通讯,这样的地点交灾区。那么也就是图中去掉该顶点后,有些顶点之间不再连通(没有路径),那么也就是整个图不再是连通图。这样的点就是割点。
灾区就是割点,统计灾区的数量就是统计割点的数量。
使用tarjan算法求出所有割点,将割点保存在一个set中,或用数组标记哪些顶点是割点,而后统计割点数量。

【题解代码】

解法1:Tarjan算法求割点,使用set保存割点
#include <bits/stdc++.h>
using namespace std;
#define N 105
int n, m;
vector<int> edge[N];//edge[i]:顶点i的邻接点 
int dfn[N], low[N], ts, root;
set<int> cutVer;
void tarjan(int u)
{int child = 0;dfn[u] = low[u] = ++ts;for(int v : edge[u]){if(dfn[v] == 0){tarjan(v);low[u] = min(low[u], low[v]);if(u == root && ++child > 1 || u != root && dfn[u] <= low[v])cutVer.insert(u);}elselow[u] = min(low[u], dfn[v]);} 
}
int main()
{int f, t;while(cin >> n && n != 0){ts = 0;//变量初始化 for(int i = 1; i <= n; ++i)edge[i].clear();memset(dfn, 0, sizeof(dfn));cutVer.clear();while(cin >> f && f != 0)while(cin.get() != '\n'){cin >> t;edge[f].push_back(t);edge[t].push_back(f);}for(int v = 1; v <= n; ++v) if(dfn[v] == 0)tarjan(root = v);cout << cutVer.size() << endl;}return 0;
}
解法2:Tarjan算法求割点,使用标记数组保存割点
#include <bits/stdc++.h>
using namespace std;
#define N 105
int n, dfn[N], low[N], ts, root, ct;
vector<int> edge[N];
bool cutVer[N];//cutVer[i]:i是否是割点
void tarjan(int u)
{int child = 0;dfn[u] = low[u] = ++ts;for(int v : edge[u]){if(dfn[v] == 0){tarjan(v);low[u] = min(low[u], low[v]);if(u == root && ++child > 1 || u != root && dfn[u] <= low[v])cutVer[u] = true;//u是割点 }elselow[u] = min(low[u], dfn[v]); }
} 
int main()
{int f, t;while(cin >> n && n != 0){ts = ct = 0;//变量初始化 for(int i = 1; i <= n; ++i)edge[i].clear();memset(cutVer, 0, sizeof(cutVer));memset(dfn, 0, sizeof(dfn));while(cin >> f && f != 0)while(cin.get() != '\n'){cin >> t;edge[f].push_back(t);edge[t].push_back(f);}for(int v = 1; v <= n; ++v) if(dfn[v] == 0)tarjan(root = v);for(int v = 1; v <= n; ++v) if(cutVer[v])//统计割点数量 ct++;cout << ct << endl;}return 0;
}
http://www.mmbaike.com/news/86401.html

相关文章:

  • vps做网站 推广怎样在百度上发布广告
  • 临沂网站服务器价格淘宝关键词优化工具
  • 网站建设常态化工作机制四川网站seo
  • 南京建设银行官方网站app推广拉新
  • 龙华营销型网站费用广告竞价
  • 网站开发的业务需求分析sem推广是什么意思呢
  • 做仿站如何获取网站源码北京互联网公司排名
  • 旅游网站开发目的和意义如何在百度发布广告
  • 国外做无纺布的网站小米市场营销案例分析
  • .net建设网站步骤详解网络热词英语
  • 和平区网站制作台湾搜索引擎
  • 恶搞网站源码网上销售培训课程
  • 免费做网站有哪些家企业推广语
  • 上海营销型网站网络营销的核心是什么
  • 内部网站建设教程谷歌浏览器下载安装2022
  • 个人网站开论坛seo门户网站建设方案
  • 网站栏目管理seo站群优化技术
  • 深圳营销网站建设多少钱哈尔滨百度推广联系人
  • 台州网站建设公司哪家好产品宣传推广策划
  • ios软件资源网站谷歌搜索引擎入口google
  • 莱州网站建设费用线下推广方式有哪些
  • 怎样建设赌博网站巨量引擎广告投放
  • 如何写好网站开发技术文档免费外链发布平台在线
  • flashfxp与Wordpress网站关键词优化排名公司
  • 独立网站的建设武汉今日头条最新消息
  • 怎么建网站手机版销售平台软件有哪些
  • 河南专业网站建设公司哪家好seo网络营销推广排名
  • 做类似3d溜溜的网站营销软文范例大全100
  • 个人建站系统友情链接是外链吗
  • 布吉商城网站建设基本流程手机端怎么刷排名