#P7359. 「JZOI-1」旅行

    ID: 6437 Type: RemoteJudge 2000ms 400MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>矩阵加速,矩阵优化树形 dp

「JZOI-1」旅行

题目背景

新年快到了,小僖要做一个长远的旅行,至于从哪里开始,到哪里,他还没有想好。

题目描述

这次旅行是在一个由 NN 个城市和 (N1)(N-1) 条双向道路组成的一个国家中,其中保证任意两个城市可以互达。

为了美化环境,所有道路都是沿河修建的,这意味着小僖可以自己制造一艘船,然后划船通过这条路,所以小僖每走一条边都可以从陆上走过去,也可以划船通过。

当然,因为顺流和逆流的原因,所以有一个参数 ziz_i,换句话讲,如果从陆上走过这条边所花费的时间为 aia_i,那么顺流而下划船所花费的时间为 aizia_i-z_i (保证结果大于 00),逆流而上花费的时间为 ai+zia_i+z_i。不过,造船需要 LL 的时间,且人一旦上了岸,就必须放弃这条船只。

现在小僖想你帮忙算一下从 uu 走到 vv 的最短时间。

注意:一条船可以连续走多段水路(只要你不下船)

输入格式

第一行三个数,N,L,TN,L,T

接下来 (N1)(N-1) 行,每行五个数,xi,yi,ai,zi,typeix_i,y_i,a_i,z_i,type_i,其中 typei=1type_i=1 表示水从 xix_i 流向 yiy_itypei=0type_i=0 表示水从 yiy_i 流向 xix_i

接下来 TT 行,每行两个数 ui,viu_i,v_i,表示每个计划的起点和终点。

输出格式

TT 行,每行一个数,表示每一个询问的答案。

3 2 2
1 2 2 1 0
1 3 3 2 1
2 3
1 2
4
2
4 1 1
1 2 100 99 1
2 3 100 99 0
3 4 100 99 1
1 4
104

提示

样例1解释

图长这样:

对于第一组询问,也就是从 2233,我们可以在 22 号节点造船,花费 22 的时间,然后从节点 22 顺流而下到 11,花费 21=12-1=1,在顺流而下到 33,花费 32=13-2=1,所以总花费为 2+1+1=42+1+1=4

数据范围

对于 10%10\% 的数据,N,T103N,T\leq10^3

对于另外 10%10\% 的数据,树的形态随机。

对于另外 20%20\% 的数据,所有的 uu 或所有的 vv 都相等。

最后一个测试点给出了一条链。

对于 100%100\% 的数据,N,T2×105N,T\leq2\times10^5,且 0<ai,L1050 <a_i,L\leq10^5