最小生成树 + 1
题目描述
给定一个带权无向连通图 G,它有 N 个顶点和 M 条边,可能包含自环和重边。
顶点编号为顶点 1、顶点 2、…、顶点 N。
边编号为边 1、边 2、…、边 M。边 i 连接顶点 ai 和顶点 bi,权重为 ci。这里,对于任意满足 1≤i<j≤M 的整数对 (i,j),都有 ci=cj。
请处理以下 Q 个查询。
第 i 个查询给出一个三元组 (ui,vi,wi)。这里,对于任意满足 1≤j≤M 的整数 j,都有 wi=cj。
设 ei 是连接顶点 ui 和顶点 vi、权重为 wi 的无向边。考虑在 G 中加入 ei 后得到的图 Gi。
可以证明,Gi 的最小生成树 Ti 是唯一确定的。Ti 是否包含 ei?请输出 Yes 或 No。
注意,查询不会改变 G。也就是说,虽然查询 i 考虑的是在 G 中加入 ei 后得到的图,但其他查询中的 G 并不包含 ei。
什么是最小生成树?
G 的生成树是指由 G 的所有顶点和 G 的部分边构成的树。
G 的最小生成树是 G 的所有生成树中边权总和最小的树。
输入格式
输入按以下格式从标准输入给出:
N M Q
a1 b1 c1
a2 b2 c2
⋮
aM bM cM
u1 v1 w1
u2 v2 w2
⋮
uQ vQ wQ
输出格式
输出 Q 行。第 i 行输出查询 i 的答案:Yes 或 No。
样例
5 6 3
1 2 2
2 3 3
1 3 6
2 4 5
4 5 9
3 5 8
1 3 1
3 4 7
3 5 7
Yes
No
Yes
下面用 (u,v,w) 表示连接顶点 u 和顶点 v、权重为 w 的无向边。
例如,查询 1 考虑的是在 G 中加入 e1=(1,3,1) 后得到的图 G1。G1 的最小生成树 T1 的边集为 {(1,2,2),(1,3,1),(2,4,5),(3,5,8)},其中包含 e1,所以应输出 Yes。
2 3 2
1 2 100
1 2 1000000000
1 1 1
1 2 2
1 1 5
Yes
No
数据范围
- 2≤N≤2×105
- N−1≤M≤2×105
- 1≤ai≤N (1≤i≤M)
- 1≤bi≤N (1≤i≤M)
- 1≤ci≤109 (1≤i≤M)
- ci=cj (1≤i<j≤M)
- 图 G 是连通的。
- 1≤Q≤2×105
- 1≤ui≤N (1≤i≤Q)
- 1≤vi≤N (1≤i≤Q)
- 1≤wi≤109 (1≤i≤Q)
- wi=cj (1≤i≤Q,1≤j≤M)
- 输入中的所有值均为整数。