#P5236. 【模板】静态仙人掌

【模板】静态仙人掌

题目背景

这是一道静态仙人掌(Block Forest Data Structure)的模板题。
如果您不知道什么是仙人掌,那么此处给出无向仙人掌图的定义:

任意一条边至多只出现在一条简单回路的无向连通图称为仙人掌。

题目描述

给你一个有 nn 个点和 mm 条边的仙人掌图,和 qq 组询问
每次询问两个点 u,vu,v,求两点之间的最短路。

输入格式

第一行三个正整数 n,m,qn,m,q,意义如题目描述。
接下来 mm 行,每行三个正整数 u,v,wu,v,w,表示 u,vu,v 之间有一条权值为 ww 的无向边。
然后 qq 行,每行两个正整数 u,vu,v,询问 uuvv 的最短路。

输出格式

qq 行,每行一个正整数,对应一次询问的结果。

9 10 2
1 2 1
1 4 1
3 4 1
2 3 1
3 7 1
7 8 2
7 9 2
1 5 3
1 6 4
5 6 1
1 9
5 7
5
6
9 10 3
1 2 1
2 3 1
2 4 4
3 4 2
4 5 1
5 6 1
6 7 2
7 8 2
8 9 4
5 9 2
1 9
5 8
3 4
7
5
2

提示

样例1解释:
样例1中的仙人掌是这个样子的:

询问有两个,分别是询问 191\rightarrow 9575\rightarrow 7 的最短路
显然答案分别为 5566

数据范围:
1n,q100001\le n,q \le 10000
1m200001\le m \le 20000
1w1051\le w \le 10^5

请注意时限为 300ms300\text{ms}