AT_tkppc2016_g.貢物(Tribute)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
joisino 姐姐的新工作是测试一款游戏。
在游戏中,主人公需要拜访不同的村庄以获取信息。
获取信息的方式是选择一些特定的贡品献给村庄(可以选择不献)。
有 N 种贡品,编号从 1 到 N。
同时,有 M 个村庄,编号从 1 到 M。
每个村庄都有自己的规定。
不同村庄的规定不会相同。
规定要求不能同时满足两个“条件”。每个“条件”可以是“献上某个贡品 X”或“不献上某个贡品 X”。
随着游戏的发展,村庄会进行合并。
在第 i 次合并中,村庄 Pi 和村庄 Qi 被合并为新的村庄 M+i。
合并时,确保村庄 Pi 和村庄 Qi 存在,合并后,村庄 Pi 和 Qi 消失。
新村庄会继承合并前村庄的所有规定。
合并过程一直进行,直到只剩下村庄 2M−1。
村庄 1 到村庄 M 都有遵守所有规定的贡品组合,但村庄 M+1 到 2M−1 可能会有相互矛盾的规定,导致无法同时满足所有规定。
joisino 姐姐的任务是编写一个程序,判断村庄 M+1 到 2M−1 是否有满足所有规定的贡品组合。
输入格式
输入以以下格式给出:
N M A1 B1 A2 B2 : AM BM P1 Q1 P2 Q2 : PM−1 QM−1
- 第 1 行包含两个整数 N(1≤N≤105) 和 M(2≤M≤105),分别表示贡品种类数量和村庄数量。
- 接下来的 M 行中,第 i 行包含两个整数 Ai(1≤∣Ai∣≤N),Bi(1≤∣Bi∣≤N),表示第 i 个村庄的规定。
- Ai 和 Bi 描述了两个“条件”:如果 Ai 为正,则表示“献上贡品 ∣Ai∣”;如果 Ai 为负,则表示“不献上贡品 ∣Ai∣”。Bi 同理。
- 接下来的 M−1 行中,第 i 行包含两个整数 Pi(1≤Pi<M+i),Qi(1≤Qi<M+i),表示合并的两个村庄。
输出格式
输出应包括 M−1 行。
对于第 i 行,如果村庄 M+i 存在符合所有规定的贡品组合,输出 "Possible";否则输出 "Impossible"。
输入输出样例
输入#1
3 4 1 2 -2 -3 -1 3 1 -2 1 3 2 5 6 4
输出#1
Possible Possible Possible
输入#2
3 4 -1 -2 2 3 1 -2 2 -3 1 4 2 5 6 3
输出#2
Possible Possible Impossible
输入#3
4 20 3 -2 4 -3 3 -1 -2 -3 -1 2 2 -4 2 -3 4 -1 1 4 -1 -3 4 2 1 -3 -2 -1 2 3 3 -4 -4 -2 -4 1 -1 -4 2 1 -4 -3 1 11 16 2 6 20 8 12 22 15 18 5 23 7 9 10 13 26 19 21 4 3 28 31 14 24 27 30 29 25 17 34 36 32 35 33 37 38
输出#3
Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Possible Impossible Possible Impossible
说明/提示
配点
这道题目设有部分分数。
- 数据集 1 满足 M(1≤M≤103),正确解答可以得到 15 分。
- 数据集 2 没有其他限制,正确解答可以得到 125 分。
样例解释 1
例如,村庄 5 可以选择什么都不献;村庄 6 可以献上贡品 1 和 3;村庄 7 可以献上贡品 2。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?