P1043策划道路(city)

时间限制 1000 ms内存限制 512 MiB通过率 0.0%
显示算法标签树形 DP · 换根 DP

【题目背景】

能量样本完成入库后,Ehundategh 开始整理主营地与周边聚落之间的道路规划。现有地图上还缺少一处新的补给城市,他需要比较不同接入位置带来的总通行费用。

【题目描述】

地图上原有 nn 座城市,编号为 1∼n1\sim n。这些城市之间存在 n−1n-1 条双向道路,并且任意两座城市之间都能够通过道路相互到达。

通过第 ii 条道路需要花费 wiw_i。对于两座城市 x,yx,y,定义 cost⁡(x,y)\operatorname{cost}(x,y) 为从城市 xx 到城市 yy 的简单路径上所有道路费用之和。特别地,cost⁡(x,x)=0\operatorname{cost}(x,x)=0。

Ehundategh 准备新建编号为 n+1n+1 的城市,并修建一条连接新城市与原有城市的双向道路。他一共准备了 qq 份彼此独立的道路方案。

第 ii 份道路方案给出两个整数 ki,xik_i,x_i,表示修建一条连接城市 kik_i 与城市 n+1n+1、费用为 xix_i 的道路。每份道路方案都从原有地图开始计算,不会改变其他方案中的道路。

对于每份道路方案,Ehundategh 希望求出新道路建成后所有有序城市对之间的费用总和。也就是说,对于所有满足 1≤x,y≤n+11\leq x,y\leq n+1 的有序对 (x,y)(x,y),将 cost⁡(x,y)\operatorname{cost}(x,y) 全部相加。

答案可能很大,你只需要输出它对 998,244,353998{,}244{,}353 取模的结果。

【输入格式】

从文件 city.in\textbf{\textit{city.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,Tc,T,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含两个正整数 n,qn,q,分别表示原有城市数量与道路方案数量。

接下来 n−1n-1 行,每行包含三个正整数 ui,vi,wiu_i,v_i,w_i,表示城市 ui,viu_i,v_i 之间存在一条费用为 wiw_i 的双向道路。

接下来 qq 行,每行包含两个正整数 ki,xik_i,x_i,表示一份道路方案。

【输出格式】

输出到文件 city.out\textbf{\textit{city.out}} 中。

对于每份道路方案输出一行一个整数,表示对应费用总和对 998,244,353998{,}244{,}353 取模的结果。

【样例 1 输入】

0 24 21 2 12 3 22 4 31 23 12 31 2 51 12 41 10

【样例 1 输出】

6864243660

【说明/提示】

【样例 1 解释】

第一组测试数据中,原有城市间所有有序城市对的费用总和为 3636。第一份道路方案产生的新增费用为 3232,因此答案为 6868。

【样例 2】

见选手目录下的 city/city2.in\textbf{\textit{city/city2.in}} 和 city/city2.ans\textbf{\textit{city/city2.ans}}。

该组样例符合测试点 1∼31\sim 3 的数据范围。

【样例 3】

见选手目录下的 city/city3.in\textbf{\textit{city/city3.in}} 和 city/city3.ans\textbf{\textit{city/city3.ans}}。

该组样例符合测试点 4∼74\sim 7 的数据范围。

【样例 4】

见选手目录下的 city/city4.in\textbf{\textit{city/city4.in}} 和 city/city4.ans\textbf{\textit{city/city4.ans}}。

该组样例符合测试点 8∼118\sim 11 的数据范围。

【样例 5】

见选手目录下的 city/city5.in\textbf{\textit{city/city5.in}} 和 city/city5.ans\textbf{\textit{city/city5.ans}}。

该组样例符合测试点 12∼1512\sim 15 的数据范围。

【样例 6】

见选手目录下的 city/city6.in\textbf{\textit{city/city6.in}} 和 city/city6.ans\textbf{\textit{city/city6.ans}}。

该组样例符合测试点 16∼2016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1≤T≤201\leq T\leq 20,2≤n≤2×1052\leq n\leq 2\times 10^5,1≤q≤2×1051\leq q\leq 2\times 10^5,单个测试点内 ∑n≤2×105\sum n\leq 2\times 10^5 且 ∑q≤2×105\sum q\leq 2\times 10^5,1≤ui,vi,ki≤n1\leq u_i,v_i,k_i\leq n,1≤wi,xi≤1061\leq w_i,x_i\leq 10^6。

测试点编号n,qn,q特殊性质
1∼31\sim 3≤80\leq 80无
4∼74\sim 7≤5×103\leq 5\times 10^3无
8∼118\sim 11≤2×105\leq 2\times 10^5B
12∼1512\sim 15≤2×105\leq 2\times 10^5A
16∼2016\sim 20≤2×105\leq 2\times 10^5无

特殊性质 A:保证每组测试数据中,第 ii 条道路均连接城市 ii 与城市 i+1i+1。

特殊性质 B:保证每份道路方案均满足 ki=1k_i=1。

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解