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

    ID: 4163 远端评测题 300ms 125MiB 尝试: 23 已通过: 3 难度: 6 上传者: 标签>图论强连通分量缩点仙人掌树链剖分树剖

【模板】静态仙人掌

题目背景

这是一道静态仙人掌(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}