#P16860. [GKS 2021 #F] Graph Travel
[GKS 2021 #F] Graph Travel
题目描述
Ada 住在一个魔法国家 ,她在魔法大学学习。今天,Ada 想在一个特殊空间中收集魔法点。
这个空间有 个房间(编号 )。有 条走廊连接这些房间。走廊 连接房间 和 ,即你可以在两个房间之间移动。
第 个房间包含 个魔法点,并且受到一个具有属性 和 的魔法护盾的保护。要进入第 个房间,首先你需要通过已经破盾的房间到达与第 个房间相邻的任意房间(即通过走廊相连的房间)。然后你必须打破该房间的护盾,但只有当你的魔法点数在 和 之间(包含两端)时,你才能打破护盾。打破护盾后,你将进入该房间并自动收集该房间的 个魔法点。房间不会生成新的魔法点。护盾被打破后也不会再生,因此无论你当前有多少点数,你都可以自由返回所有已经破盾的房间。
Ada 开始时拥有 个魔法点,她的目标是找到一种方法恰好收集 个魔法点。她可以在任意房间开始,也可以在任意房间结束。她选择的起始房间的魔法护盾会自动被打破,并且她会自动收集该房间的所有魔法点。
在查看了房间和走廊的地图后,Ada 认为任务太简单了,因此她想挑战一个更困难的任务:她想知达到目标有多少种不同的方式。如果两条路径的唯一路径不同,则认为它们是不同的。唯一路径是指她打破护盾的房间顺序(去除重复),例如:如果你按顺序访问房间 ,则唯一路径为 。
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。
每个测试用例的第一行包含三个整数 、 和 :房间的数量、走廊的数量以及要收集的魔法点数。
接下来的 行,每行包含三个整数 、 和 :第 个房间的魔法护盾属性 和 ,以及该房间的魔法点数 。
接下来的 行,每行包含两个整数 和 :走廊 连接的两个房间。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是收集 个魔法点的方式数量。
3
4 3 3
1 3 1
1 1 1
2 4 1
2 3 1
0 1
1 2
2 3
4 5 3
1 3 1
1 1 1
2 4 1
2 3 1
0 1
1 2
2 3
3 0
0 2
4 1 2
0 4 1
0 4 1
0 4 2
0 4 2
0 1
Case #1: 4
Case #2: 8
Case #3: 4
提示
在第一个测试用例中,有 种不同的方式,如下图所示:
:::align{center}
:::
在第二个测试用例中,有 种不同的方式,如下图所示:
:::align{center}
:::
在第三个测试用例中,有 种不同的方式,如下图所示:
:::align{center}
:::
限制条件
。
。
。
。
每对房间之间至多有一条走廊。
测试集 1
。
。
。
。
测试集 2
。
。
。
。
翻译由 DeepSeek V4 Pro 完成