#L2218. 「HEOI2014」林中路径

「HEOI2014」林中路径

题目描述

Alice 和 Marisa 都住在一个巨大的由 NN 个路口与 MM 条单向小道构成的森林中。Marisa 非常喜欢到 Alice 家里去玩,但是 Alice 并不喜欢这位鲁莽的来客。Alice 非常擅长观察,因此每当她发现 Marisa 走了一条与之前完全相同的路径来到她家时,她就会装作不在家,Marisa 就只好败兴而归。Marisa 发现了这个秘密,因此她决定每次走不同的路径到 Alice 家。

Marisa 体力有限,她不想走超过 KK 条边到达 Alice 家,并且,每当她走 tttKt \leq K)条边到达 Alice 家时,她需要付出 t2t^2 的体力。Marisa 想知道,在 Alice 无论如何都不想接见她之前(即 Marisa 无法走一条长度不超过 KK 的与之前不同的路径),她会消耗多少体力。

现在 Marisa 拿到了一张森林的地图,但因为 Marisa 非常笨,她并不知道自己的家和 Alice 的家在哪一个路口,因此她会询问你 QQ 次,每次询问假如 Marisa 的家的位置在 SS 而 Alice 的家的位置在 TT 时的答案。

一条路径 AA 的定义是指一个长度为 PPPP 可以为任意正整数或零)的边的序列 Am0,Am1,Am2,,AmP1A_{m_0},A_{m_1},A_{m_2},\ldots,A_{m_{P-1}},其中对于任意 1i<P1 \leq i < P,有 Ami1A_{m_{i-1}} 的结束节点是 AmiA_{m_i} 的起始节点。
两条路径 AABB 完全相同是指两条路径的长度均为 TT 并且对任意 0i<P0 \leq i<P,有 Ami=BmiA_{m_i}=B_{m_i}

输入格式
输入数据第一行包含四个整数 N,M,K,QN,M,K,Q,含义如题所述。
接下来 MM 行,每行两个整数 X,YX,Y,表示从第 XX 个路口到第 YY 个路口有一条单向小道。路口的标号为 1,2,3,,N1,2,3,\ldots,N,在输入数据第 i+1i+1 行的边的标号为 ii
接下来 QQ 行,每行两个整数 SSTT,含义如题所述。

输出格式
对于每个询问,输出一行,表示这次询问的答案。由于 Marisa 接受不了非常大的数,你只需要输出答案模 1000000007 (109+7)1000000007\ (10^9+7) 的值。

样例 1
输入

2 0 1 1
1 2

输出

0

解释:从 SSTT 不存在路径。

样例 2
输入

2 2 2 1
1 2
2 1
1 1

输出

4

解释:Marisa 可以重复经过一个路口,即使这个路口就是 Alice 的家或 Marisa 的家。

样例 3
输入

2 2 100 1
1 2
2 1
1 2

输出

166650

样例 4
输入

2 3 100 2
1 2
1 2
2 1
2 2
2 1

输出

632506153

数据范围与提示
对于 100%100\% 的数据,2N1002 \leq N \leq 1000M1060 \leq M \leq 10^60K1090 \leq K \leq 10^90Q1050 \leq Q \leq 10^51X,Y,S,TN1 \leq X,Y,S,T \leq N

备注:样例输出 4 原有两行,故不确定保留下的输出是否正确。5/3/17