#P1157. 通信成本总和

    ID: 169 传统题 1000ms 128MiB 尝试: 0 已通过: 0难度: 提高 ← 上一题 下一题 → 随机一题 上传者: 标签 图论 最小生成树 并查集 计数
显示设置

通信成本总和

题目背景

山谷两侧的城镇一直靠无线电联系,信号衰减严重。今年工程队终于要来铺设光纤干线,图纸上标出了一批可以开挖的线路,每条线路的施工成本都已经勘察完毕。工程师想知道,这批线路修好之后,整个山谷的通信质量到底如何。

题目描述

山谷里有 nn 座城镇,编号 1∼n1 \sim n;图纸上有 mm 条可选线路,第 ii 条连接城镇 uiu_i 与 viv_i,施工成本为 wiw_i。同一对城镇之间可能给出多条不同成本的线路,输入中不会出现连接同一座城镇的线路。

工程队会从中选出一部分线路施工。施工完成后,如果两座城镇之间存在由已施工线路构成的通路,就称这两座城镇是连通的。

对于任意两座连通的城镇,定义它们的通信成本为:在所有连接它们的通路中,「通路上成本最高的那一段线路」的成本的最小值。也就是说,通信成本衡量的是这两座城镇之间最省钱的那条走法里最贵的一段。

为了评估整张图纸,请计算:所有连通的城镇对的通信成本之和。若两座城镇不连通,这一对不计入总和。由于结果可能很大,请输出该总和除以 998244353998244353 的余数。

输入格式

第一行两个整数 n,mn, m。

接下来 mm 行,每行三个整数 ui,vi,wiu_i, v_i, w_i,表示一条可选线路。

输出格式

一行一个整数,表示所有连通城镇对的通信成本之和除以 998244353998244353 的余数。

输入输出样例 #1

输入 #1

3 2
1 2 5
2 3 3

输出 #1

13

输入输出样例 #2

输入 #2

2 0

输出 #2

0

输入输出样例 #3

输入 #3

4 4
1 2 1
2 3 1
3 4 1
1 4 1

输出 #3

6

说明

样例解释

样例 1 中,城镇 11 与 22 之间只有一条线路,通信成本是 55;城镇 22 与 33 的通信成本是 33;城镇 11 到 33 必须经过城镇 22,通路上最贵的一段是 55,通信成本也是 55。总和 5+3+5=135 + 3 + 5 = 13。

样例 2 中没有任何线路,两座城镇之间不连通,没有任何城镇对计入总和,答案为 00。

样例 3 中四座城镇两两连通。相邻城镇之间可以走成本为 11 的线路,通信成本是 11;对角线上的两对城镇各有两条通路,两条通路上最贵的一段都不超过 11,通信成本同样是 11。六对城镇的通信成本之和为 66。

数据范围

  • 对于 20%20\% 的数据,n≤8n \le 8,m≤20m \le 20;
  • 对于 50%50\% 的数据,n≤2000n \le 2000,m≤5000m \le 5000;
  • 对于 100%100\% 的数据,1≤n≤1051 \le n \le 10^5,0≤m≤2×1050 \le m \le 2 \times 10^5,1≤wi≤1091 \le w_i \le 10^9,ui≠viu_i \ne v_i。