#GESP202603C8T4. 子图最短路

子图最短路

题目描述

给定包含 n n 个结点 m m 条边的带权无向图 G G ,结点依次以 1,2,,n 1, 2, \ldots, n 编号。第 i(1im) i (1 \leq i \leq m) 条边连接编号为 ui u_i vi v_i 的两个结点,权值为 wi w_i

对于指定的 1rn 1 \leq \ell \leq r \leq n ,按以下方式构造图 G G 的子图 G(,r) G(\ell, r)

  • 保留 G G 中编号在区间 [,r] [\ell, r] 中的结点。删去其它编号不在 [,r] [\ell, r] 中的结点以及与之相连的边。剩余的结点和边构成子图 G(,r) G(\ell, r)

对于 G(,r) G(\ell, r) 中的任意结点 u,v u, v 应有 u,vr \ell \leq u, v \leq r 。记 u,v u, v 在子图 G(,r) G(\ell, r) 上的最短距离为 d(,r,u,v) d(\ell, r, u, v) 。特殊地,若 u,v u, v 在子图 G(,r) G(\ell, r) 上不连通,则认为 d(,r,u,v)=0 d(\ell, r, u, v) = 0

你需要求出 $ \sum_{\ell=1}^{n} \sum_{r=\ell}^{n} \sum_{u=\ell}^{r} \sum_{v=u}^{r} d(\ell, r, u, v) $ 对 109 10^9 取模的结果。

  • 题目中的英文字母 l l 使用了特殊写法 \ell ,以避免英文字母 l l 与数字 1 1 混淆。

输入格式

第一行,两个正整数 n,m n, m ,表示结点数与边数。

接下来 m m 行,第 i(1im) i (1 \leq i \leq m) 行包含三个正整数 ui,vi,wi u_i, v_i, w_i ,表示一条连接结点 ui,vi u_i, v_i 的权值为 wi w_i 的边。

输出格式

输出一行,一个整数,表示 $ \sum_{\ell=1}^{n} \sum_{r=\ell}^{n} \sum_{u=\ell}^{r} \sum_{v=u}^{r} d(\ell, r, u, v) $ 对 109 10^9 取模的结果。

输入样例1

3 2
1 2 1
2 3 2

输出样例1

9

输入样例2

4 6
1 2 100
2 3 100
3 4 100
1 3 10
2 4 10
1 4 1

输出样例2

784

数据范围

对于 40%40\% 的测试点,保证 2n202 \le n \le 20

对于所有测试点,保证 2n1002 \leq n \leq 1002mn(n1)22 \leq m \leq \frac{n(n-1)}{2}1ui,vin1 \leq u_i, v_i \leq n1wi1061 \leq w_i \leq 10^6。图中可能存在重边。