#185. 子图最短路
子图最短路
子图最短路
题目描述
给定包含 n 个结点 m 条边的带权无向图 G,结点依次以 1..n 编号。第 i 条边连接编号为 u[i] 与 v[i] 的两个结点,权值为 w[i]。 对于指定的区间 [l, r],按以下方式构造图 G 的子图 G[l, r]:保留 G 中编号在区间 [l, r] 中的结点,删去其它编号不在 [l, r] 中的结点以及与之相连的边,剩余的结点和边构成子图 G[l, r]。 对于 G[l, r] 中的任意结点 i, j,记 d 为 i, j 在子图 G[l, r] 上的最短距离;若 i, j 在子图 G[l, r] 上不连通,则认为 d 为 1e9。 你需要求出所有区间 [l, r](1 ≤ l ≤ r ≤ n)的 G[l, r] 内所有点对距离之和,对 1e9 取模的结果。
输入格式
第一行,两个正整数 n, m,表示结点数与边数。 接下来 m 行,第 i 行包含三个正整数 u[i], v[i], w[i],表示一条连接 u[i] 与 v[i] 的权值为 w[i] 的边。
输出格式
输出一行,一个整数,表示答案对 1e9 取模的结果。
样例
输入
3 2
1 2 1
2 3 2
输出
9
输入
4 6
1 2 100
2 3 100
3 4 100
1 3 10
2 4 10
1 4 1
输出
784
数据范围
保证 1 ≤ n ≤ 100,1 ≤ m ≤ 1000,1 ≤ u, v ≤ n,1 ≤ w ≤ 10000,图中可能存在重边。取模数为 1000000000。