#56769. 树上询问

    ID: 56769 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>计蒜客赛事提高T4/省选最近公共祖先线段树差分树链剖分魔扣OJ

树上询问

暂无测试数据。

你有一棵 $n$ 个节点的树。树的边有边权。

定义树上两个节点 $i,j$ 的距离 $\text{dist}(i,j)$ 为 $i$ 到 $j$ 之间简单路径上的边权之和。

给出 $q$ 组询问,每次给定 $l,r,x$,你需要输出 $\sum_{i=l}^{r}\text{dist}(i,x)$ 的值。

这个值可能会很大,所以你需要将它对 $10^9+7$ 取模后再输出。

输入格式

第一行一个正整数 $n$ 表示节点个数。

接下来 $n-1$ 行,每行两个正整数 $u_i,v_i,w_i$ 表示树上存在一条边 $(u_i,v_i)$,其边权为 $w_i$。

接下来一个正整数 $q$ 表示询问次数。

接下来 $q$ 行,每行三个正整数 $l,r,x$,表示一次询问。

输出格式

对于每次询问,输出一行一个正整数表示答案。

数据范围

数据点编号数据范围
$1\sim 2$$n,q\le 10$
$3\sim 4$$n,q\le 200$
$5\sim 6$$u_i=i,v_i=i+1$
$7\sim 8$$u_i=1$
$9\sim 12$$w_i=1$
$13\sim 14$$q\le 3$
$15\sim 20$无特殊限制

对于 $100\%$ 的数据,$n,q\le 10^5,w_i\le 10^{9}$。

4
1 2 1
1 3 2
2 4 4
4
3 4 1
2 2 4
1 2 3
2 3 1
7
4
5
3
8
1 2 6
1 3 8
2 7 1
3 4 8
3 5 1
3 6 7
7 8 1
9
1 7 3
5 6 1
1 2 5
6 8 3
4 5 1
1 6 6
1 1 7
6 6 2
3 6 2
53
24
24
38
25
66
7
21
72