#CF2115E. 水母与五月花号
水母与五月花号
E. 水母与五月花号
时间限制: 3 秒
内存限制: 1024 MB
五月花号 by Plum
五月份,水母的朋友 May 喜欢玩一个名为“Inscryption”的游戏,该游戏在一个有 个顶点、 条边的有向无环图上进行。所有边 都满足 。
你从顶点 出发,携带一定数量的硬币。你需要沿着有向边从顶点 移动到最终首领所在的顶点,然后与最终首领战斗。
图上的每个顶点 都有一个商人,他会以 枚硬币的价格卖给你一张威力值为 的卡牌。你可以从每个商人处购买任意数量的卡牌。但是,你只有在当前位于顶点 时,才能与该顶点的商人交易。
为了击败首领,你希望自己拥有的卡牌的威力值之和尽可能大。
你需要回答以下 个询问:
给定整数 和 。如果最终首领位于顶点 ,并且你一开始有 枚硬币,当你与最终首领战斗时,你的卡牌威力值之和的最大值是多少?注意,允许在顶点 处也进行卡牌交易。
输入格式
第一行包含两个整数 和 (,$n-1 \le m \le \min\left(\frac{n(n-1)}{2}, 2000\right)$)—— 图中顶点数和边数。
接下来的 行中,第 行包含两个整数 和 (,)—— 描述顶点 上商人的卡牌信息。
接下来的 行中,每行包含两个整数 和 (),表示一条从 到 的有向边。保证每条边 最多出现一次。
下一行包含一个整数 ()—— 询问个数。
接下来的 行中,每行包含两个整数 和 (,)。
保证对于所有 ,都存在一条从顶点 到顶点 的路径。
输出格式
对于每个询问,输出一行答案。
样例输入 1
3 2
3 9
2 5
1 2
1 2
2 3
6
1 4
2 4
3 4
1 5
2 5
3 5
样例输出 1
9
10
11
9
14
14
样例输入 2
4 4
10 1000
2 5
1 2
3 9
1 2
1 3
2 4
3 4
9
2 3
3 3
4 1
4 2
4 4
4 5
4 101
4 102
4 103
样例输出 2
5
6
2
5
11
14
10002
10005
10009
样例输入 3
6 8
9 5
4 1
8 9
10 4
9 4
8 2
3 5
4 6
3 4
2 3
1 2
2 5
4 5
1 3
10
3 12
1 9
6 47
2 19
1 129
5 140
2 148
1 63
2 43
3 102
样例输出 3
10
5
46
10
70
154
81
35
21
109
样例 1 中的第三个询问解释
游戏过程如下:
- 在顶点 与商人交易,购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
- 从顶点 移动到顶点 。
- 从顶点 移动到顶点 。
- 在顶点 与商人交易,购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
最终拥有 张 威力卡牌和 张 威力卡牌,总威力值为 。
样例 2 中的第五个询问解释
- 从顶点 移动到顶点 。
- 在顶点 购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
- 从顶点 移动到顶点 。
- 在顶点 购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
总威力值为 。
样例 2 中的第六个询问解释
- 从顶点 移动到顶点 。
- 在顶点 购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
- 从顶点 移动到顶点 。
- 在顶点 购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
总威力值为 。
样例 2 中的第七个询问解释
- 在顶点 购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
- 从顶点 移动到顶点 。
- 在顶点 购买 张威力值为 的卡牌,花费 枚硬币,剩余 枚硬币。
- 从顶点 移动到顶点 。
总威力值为 。