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

营销型网站 案例南京网站推广费用

营销型网站 案例,南京网站推广费用,推广普通话黑板报内容,网站关键词排名不稳定题目描述A 国派出将军 uim,对 B 国进行战略性措施,以解救涂炭的生灵。B 国有 n 个城市,这些城市以铁路相连。任意两个城市都可以通过铁路直接或者间接到达。uim 发现有些铁路被毁坏之后,某两个城市无法互相通过铁路到达。这样的铁…

题目描述

A 国派出将军 uim,对 B 国进行战略性措施,以解救涂炭的生灵。

B 国有 n 个城市,这些城市以铁路相连。任意两个城市都可以通过铁路直接或者间接到达。

uim 发现有些铁路被毁坏之后,某两个城市无法互相通过铁路到达。这样的铁路就被称为 key road。

uim 为了尽快使该国的物流系统瘫痪,希望炸毁铁路,以达到存在某两个城市无法互相通过铁路到达的效果。

然而,只有一发炮弹(A 国国会不给钱了)。所以,他能轰炸哪一条铁路呢?

输入格式

第一行 n,m (1≤n≤150,1≤m≤5000),分别表示有 n 个城市,总共 m 条铁路。

以下 m 行,每行两个整数 a,b,表示城市 a 和城市 b 之间有铁路直接连接。

输出格式

输出有若干行。

每行包含两个数字 a,b,其中 a<b,表示 ⟨a,b⟩ 是 key road。

请注意:输出时,所有的数对 ⟨a,b⟩ 必须按照 a 从小到大排序输出;如果 a 相同,则根据 b 从小到大排序。

输入输出样例

输入 #1复制

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

输出 #1复制

1 2
5 6

代码实现:

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;

const int MAXN = 155; // 最大城市数
const int MAXM = 5005; // 最大铁路数

vector<int> adj[MAXN]; // 邻接表存储图
int disc[MAXN], low[MAXN]; // 发现时间和最早可达时间
bool visited[MAXN]; // 标记节点是否访问过
vector<pair<int, int > > bridges; // 存储找到的桥
int timeCounter; // 时间计数器

// Tarjan算法找桥
void tarjan(int u, int parent) {
visited[u] = true;
disc[u] = low[u] = ++timeCounter;

// 使用传统for循环代替范围for循环
for (int i = 0; i < adj[u].size(); i++) {
int v = adj[u][i]; // 获取邻接节点
if (v == parent) continue; // 跳过父节点

if (!visited[v]) {
tarjan(v, u);
low[u] = min(low[u], low[v]);

// 如果子节点的最早可达时间大于当前节点的发现时间,说明这条边是桥
if (low[v] > disc[u]) {
// 确保存储时a < b
if (u < v) {
bridges.push_back({u, v});
} else {
bridges.push_back({v, u});
}
}
} else {
// 回边,更新最早可达时间
low[u] = min(low[u], disc[v]);
}
}
}

int main() {
int n, m;
cin >> n >> m;

// 构建邻接表
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}

// 初始化变量
memset(visited, false, sizeof(visited));
memset(disc, 0, sizeof(disc));
memset(low, 0, sizeof(low));
timeCounter = 0;

// 对每个未访问的节点执行Tarjan算法
for (int i = 1; i <= n; i++) {
if (!visited[i]) {
tarjan(i, -1); // -1表示没有父节点
}
}

// 按照要求排序:先按a从小到大,a相同则按b从小到大
sort(bridges.begin(), bridges.end());

// 输出结果
for (int i = 0; i < bridges.size(); i++) {
cout << bridges[i].first << " " << bridges[i].second << endl;
}

return 0;
}

http://www.dtcms.com/a/551407.html

相关文章:

  • 建设网站入不入无形资产吉林省吉林市邮政编码
  • 网站模版网 下载博物馆建设网站的作用
  • 网站推广方案怎么写传奇游戏排行榜
  • 做商城网站服务器配置怎么选择2 网站建设的一般步骤包含哪些
  • 网站开发 网络工程 哪个好成都旅游几月份去最佳时间
  • 网站建设需要哪些软件沙县住房和城乡规划建设局网站
  • 梅州网站建设求职简历网页布局排版技巧
  • 河南住房与建设厅网站外贸建站用什么服务器
  • 清远住房和城乡建设局网站网站建设上机考试题目
  • 网站优化北京哪家强?wordpress编译太慢
  • 安徽房和城乡建设部网站wordpress 清空 demo
  • 学做网站需要学哪些软件网络宣传怎么做
  • 网站建设人员招聘要求上海idc机房托管
  • 建设美食电子商务网站沧州网站制作
  • 免费开源代码网站网站如何做seo规划
  • 一学一做动漫视频网站重庆网站营销公司
  • 汕头网站备案滑动门代码 wordpress
  • 网站中搜索栏怎么做的管理软件网站模板
  • 好网站建设网站网站开发的问题
  • 二级域名如何绑定网站网页版梦幻西游伙伴
  • 好多职业培训网站是怎么做的咸阳网站推广
  • 建设电商网站的个人心得张家界酒店网站建设
  • 云南省建设网站福千欣隆网站建设公司 概况
  • 服务器做网站用什么环境好河南郑州网站建设
  • 溧阳网站优化漂亮的企业网站源码
  • 高水平的徐州网站建设企业网站备案 过户
  • 医药招商网站大全免费dedecms网站迁移
  • 山西省建设厅招标网站菏泽建设职业中等专业学校官方网站
  • 毕业设计论文网站开发需要多少钱久治县网站建设公司
  • 益阳建站网站制作wordpress同步至订阅号