两道和Tarjan有关的图论题
来源:互联网 发布:软件后续技术支持方案 编辑:程序博客网 时间:2024/06/03 11:09
重要道路
Time Limits: 1000 ms Memory Limits: 262144 KB
Description
给定一个无向图 G,对于其中的一条边(u,v),将它删除之后会使得从 1 到 n 的最短路长度增加,那么这条边被称为“重要道路”。
求 G 中所有的重要道路。
Input
第一行两个整数 n,m,分别代表点数和边数。
接下来 m 行,每行三个整数 u,v,c,代表权值为 c 的无向边(u,v)。可能有重 边,但没有自环。保证 1 号点和 n 号点是连通的。
Output
第一行一个整数 k,代表重要道路的数量。
下一行升序输出 k 个数代表重要道路的编号(按输入顺序从 1 到 m)。
Sample Input
6 7
1 2 1
2 3 1
2 5 3
1 3 2
3 5 1
2 4 1
5 6 2
Sample Output
2
5 7
Data Constraint
20%的数据,n,m<=10。
另外 20%的数据,m=n-1。
Time Limits: 1000 ms Memory Limits: 262144 KB
Description
给定一个无向图 G,对于其中的一条边(u,v),将它删除之后会使得从 1 到 n 的最短路长度增加,那么这条边被称为“重要道路”。
求 G 中所有的重要道路。
Input
第一行两个整数 n,m,分别代表点数和边数。
接下来 m 行,每行三个整数 u,v,c,代表权值为 c 的无向边(u,v)。可能有重 边,但没有自环。保证 1 号点和 n 号点是连通的。
Output
第一行一个整数 k,代表重要道路的数量。
下一行升序输出 k 个数代表重要道路的编号(按输入顺序从 1 到 m)。
Sample Input
6 7
1 2 1
2 3 1
2 5 3
1 3 2
3 5 1
2 4 1
5 6 2
Sample Output
2
5 7
Data Constraint
20%的数据,n,m<=10。
另外 20%的数据,m=n-1。
100%的数据,1<=n<=20000,1<=m,c<=100000。
思路::先是最短路求出dis[]
然后什么样的路会可能是重要道路呢?
可以这么说,对于点i,有点j可以走到点i
若有d[i] == d[j] + EdgeValue[i][j]
那么边(i,j)可能是重要道路
我们把可能是重要道路的路扔进一个新图,然后在新图上找割边,问题就解决了。
出行 (Standard IO)
Time Limits: 1000 ms Memory Limits: 262144 KB
Description
【问题の描述】
上海又叫做申城,那里的地铁一直是很拥挤的。鸡腿从张江去邯郸本部的路上常常是挤得……瘦了一圈。但是呢今天因为没有学霸的碾压,鸡腿心情很好决定要出去玩。为了避免遇上残酷的拥挤的地铁线,鸡腿想要查找一些路线中的必经地点,请你来告诉他吧。
上海的地铁被描述为N个点M条边的一个无向图,每次鸡腿会告诉你他在第S条路上,想要到第T条路上(别问我为什么是路上……),你能告诉他有多少个途中的点是他必须要经过的吗?
Input
第一行输入两个正整数N,M表示无向图的点数和边数。
第2到M+1行每行两个整数X、Y,表示X节点和Y节点之间有一条无向边。(数据保证无重边自环)
接下来一行输入一个整数Q,表示有Q个询问
接下来Q行每行两个正整数S、T,表示询问第S条边到第T条边有多少点一定会经过。
Output
对于每个询问输出一行一个整数表示至少有Ans个点一定会经过。
Sample Input
5 6
1 2
1 3
2 3
3 4
4 5
3 5
2
2 3
2 4
Sample Output
0
1
Data Constraint
对于20%的数据1 ≤ N ≤ 10^2,1 ≤ M ≤ 10^3,1 ≤ Q ≤ 10^3;
对于40%的数据 1 ≤ N ≤ 10^3,1 ≤ M ≤ 10^4,1 ≤ Q ≤ 10^3;
对于100%的数据 1 ≤ N ≤ 10^4,1 ≤ M ≤ 10^5,1 ≤ Q ≤ 10^4,0<Xi,Yi ≤ N, 0< S,T ≤ M。
这题他是从边出发到边的。应联想到化边为点。
Time Limits: 1000 ms Memory Limits: 262144 KB
Description
【问题の描述】
上海又叫做申城,那里的地铁一直是很拥挤的。鸡腿从张江去邯郸本部的路上常常是挤得……瘦了一圈。但是呢今天因为没有学霸的碾压,鸡腿心情很好决定要出去玩。为了避免遇上残酷的拥挤的地铁线,鸡腿想要查找一些路线中的必经地点,请你来告诉他吧。
上海的地铁被描述为N个点M条边的一个无向图,每次鸡腿会告诉你他在第S条路上,想要到第T条路上(别问我为什么是路上……),你能告诉他有多少个途中的点是他必须要经过的吗?
Input
第一行输入两个正整数N,M表示无向图的点数和边数。
第2到M+1行每行两个整数X、Y,表示X节点和Y节点之间有一条无向边。(数据保证无重边自环)
接下来一行输入一个整数Q,表示有Q个询问
接下来Q行每行两个正整数S、T,表示询问第S条边到第T条边有多少点一定会经过。
Output
对于每个询问输出一行一个整数表示至少有Ans个点一定会经过。
Sample Input
5 6
1 2
1 3
2 3
3 4
4 5
3 5
2
2 3
2 4
Sample Output
0
1
Data Constraint
对于20%的数据1 ≤ N ≤ 10^2,1 ≤ M ≤ 10^3,1 ≤ Q ≤ 10^3;
对于40%的数据 1 ≤ N ≤ 10^3,1 ≤ M ≤ 10^4,1 ≤ Q ≤ 10^3;
对于100%的数据 1 ≤ N ≤ 10^4,1 ≤ M ≤ 10^5,1 ≤ Q ≤ 10^4,0<Xi,Yi ≤ N, 0< S,T ≤ M。
这题他是从边出发到边的。应联想到化边为点。
是人都会想到要用tarjan,我们应找割点,然后呢?
对,化边集为点,将双联通的边集化为一个点,然后割点单独一个点
新图必定是一个边点隔一个割点的一颗数。
那么问题转化成求树上两点距离,这个可以logN实现,用倍增求LCA。
0 0
- 两道和Tarjan有关的图论题
- 挖个坑的图论题
- 我完成的图论题
- COJ1978-LXX的图论题
- CSU1978: LXX的图论题
- 有关字符串的两道编程题
- 图论题
- duty (图论题.二维前缀和)
- CF827D,巧妙的图(树)论题
- CSUOJ-1978: LXX的图论题(Flyod)
- csu1978LXX的图论题(floyd)
- CSU 1978: LXX的图论题
- 有关学生减负的一则报道和两篇日记
- 强连通图的‘太监’算法(tarjan)-两种方式
- 悲剧的数论题
- 强连通分量两种算法。tarjan和kosaraju
- 有关完全二叉树求节点数和前缀树求字符串是否重复的两道算法题
- POJ 图论题目
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- 链表各种接口的递归写法
- 封装jQuery Validate扩展验证方法
- java基础---java中的IO流
- Q2:关于数组的解包错误 fatal error: Can't unwrap Optional
- 两道和Tarjan有关的图论题
- uva11542 Square(异或方程组)
- 第一部分 基础篇 第一章 走进MongoDB
- 需求结构化与分析约束影响
- 《gdb调试之实用技巧篇》
- day14_多线程
- 用递归来写各种接口
- 大型网站架构演变
- 如何学习编程