#ACSPJ2025C. 旅行

旅行

题目描述

小可可来到了 PP 国旅行。

PP 国共有 nn 个城市和 mm 条有向道路,其中第 ii 条道路为从城市 uiu_i 到城市 viv_i,长度为 wiw_i。保证 ui<viu_i < v_i

对于一次游览,假设小可可依次经过了城市 x1,x2,,xkx_1, x_2, \cdots, x_k,其中从 xix_ixi+1x_{i+1} 经过的路径长度为 yiy_i。记 sis_i 表示 y1,y2,,yiy_1, y_2, \cdots, y_i按位或值。那么小可可认为这次游览就是从 x1x_1 走到 xkx_k,疲劳度就是 mex(s1,s2,,sk1)mex(s_1, s_2,\cdots, s_{k−1})

其中 mex(a1,a2,,an)mex(a_1, a_2, \cdots, a_n) 表示最小的没有出现在 a1,a2,,ana_1, a_2, \cdots, a_n 中的自然数。例如 mex(0,2,3)=1mex(0, 2, 3) = 1mex(1,4)=0mex(1, 4) = 0mex(0,1,2,3,4)=5mex(0, 1, 2, 3, 4) = 5

小可可认为两座城市 s,ts, t 之间的距离为他从 ss 走到 tt 所有可能的游览方案中疲劳度的最大值,记作 d(s,t)d(s, t)。如果不能从 ss 走到 tt,那么 d(s,t)=1d(s, t) = −1。规定 d(s,s)=0d(s, s) = 0。现在他想要知道任意两座城市之间的距离之和,即 i=1nj=1nd(i,j)\sum_{i=1}^{n}{\sum_{j=1}^{n}{d(i,j)}}

输入格式

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

接下来 mm 行,每行三个整数,代表 ui,vi,wiu_i , v_i , w_i

输出格式

一行一个整数表示答案。

样例 1

3 3
1 2 0
1 3 2
2 3 1
0

样例 1 解释

当从 11 走到 33 时有两条路径。其中从 11 直接到 33 疲劳度为 mex(2)=0mex(2) = 0。从 1122 再到 33 疲劳度为 mex(0,1)=2mex(0, 1) = 2。所以 1133 的距离为 22

以此类推,有 d(1,1)=d(2,2)=d(3,3)=0d(1, 1) = d(2, 2) = d(3, 3) = 0d(2,1)=d(3,1)=d(3,2)=1d(2, 1) = d(3, 1) = d(3, 2) = −1d(1,2)=1,d(1,3)=2,d(2,3)=0d(1, 2) = 1, d(1, 3) = 2, d(2, 3) = 0。总和为 00

数据规模与约定

对于 10%10\% 的数据,保证 n3n ≤ 3, m5m ≤ 5

对于 25%25\% 的数据,保证 n20,m40n ≤ 20, m ≤ 40

对于 45%45\% 的数据,保证 n300n ≤ 300, m500m ≤ 500

对于 60%60\% 的数据,保证 n3000n ≤ 3000, m5000m ≤ 5000

对于另外 10%10\% 的数据,保证 wi1w_i ≥ 1

对于另外 10%10\% 的数据,保证 m=n1m = n − 1ui=iu_i = i

对于 100%100\% 的数据,保证 1n3×1041 ≤ n ≤ 3 × 10^4 , 1m2×1051 ≤ m ≤ 2 × 10^5 , 1ui<vin1 ≤ u_i < v_i ≤ n , 0wi1090 ≤ w_i ≤ 10^9

ex_trip1.in  ex_trip1.ans

ex_trip2.in  ex_trip2.ans

ex_trip3.in  ex_trip3.ans

ex_trip4.in  ex_trip4.ans

ex_trip5.in  ex_trip5.ans