#P17263. [2025年南开中学集训]花猫游戏
[2025年南开中学集训]花猫游戏
题目描述
只小花猫从 到 编号,按顺序坐成一圈, 号与 号相邻。
每只小猫都有一张写着数字 或 的卡片。每只小猫都可以看到除了相邻的两只小猫以外所有小猫的卡片数字,也可以看到自己的。
游戏共进行 回合。第 回合琳妮特会向所有小猫公布 条信息,有以下三种形式的信息:
- 若 ,将给出某个小猫集合卡片的逻辑或值。
- 若 ,将给出某个小猫集合卡片的逻辑与值。
- 若 ,将给出某个小猫集合卡片的逻辑异或值。
公布完信息之后:
- 如果某只小猫手里的卡片写着 ,且她可以通过推断确定相邻的两只小猫卡片数字逻辑或的值,她就会宣布胜利。
- 如果某只小猫手里的卡片写着 ,且她可以通过推断确定相邻的两只小猫卡片数字逻辑异或的值,她就会宣布胜利。
小猫们都非常聪明,只要依据她已知的信息能够推断出结果,她一定会宣布胜利。回合结束时,能够推断结果的小猫会同时宣布胜利(这意味着小猫不能听别的小猫宣布之后再宣布)。然后本回合结束,进入下一回合。
除此之外小猫们没有任何交流。现在给出每只小猫的卡片数字和琳妮特需要公布的所有信息,绮良良想知道每只小猫第一次宣布胜利是在第几回合。
输入格式
第一行两个整数 和 ,表示猫的数量和回合数。
第二行 个整数,表示小猫卡片上的数字。
接下来有 个部分,第 部分描述了第 回合琳妮特公布的信息。
第 部分的第一行包括一个非负整数 ,表示第 回合公布的信息条数。
接下来 行,每行第一个正整数 ,表示该信息的类型;第二个正整数 ,表示该集合卡片数字的逻辑或/与/异或的值;第三个正整数 ,表示集合中小猫的数量;接下来 个互不相同的整数表示集合里所有小猫的编号。
输出格式
一行 个整数,表示编号 到 的小猫第一次宣布胜利时的回合数。如果她自始自终都没有宣布胜利,输出 -1。
输入输出样例
输入 #1
3 2
1 1 0
2
0 1 2 0 2
0 1 1 1
0
输出 #1
2 2 1
输入 #2
3 2
1 1 1
1
0 1 3 0 1 2
0
输出 #2
2 2 2
说明/提示
样例 #1
该组样例满足子任务 1 的限制。
样例 #2
该组样例满足子任务 2 的限制。
样例 #3
见下发的 ex_game3.in/.out。
该组样例满足子任务 1 的限制。
样例 #4
见下发的 ex_game4.in/.out。
该组样例满足子任务 2 的限制。
样例 #5
见下发的 ex_game5.in/.out。
该组样例满足子任务 3 的限制。
样例 #6
见下发的 ex_game6.in/.out。
该组样例满足子任务 4 的限制。
样例 #7
见下发的 ex_game7.in/.out。
该组样例满足子任务 5 的限制。
样例 #8
见下发的 ex_game8.in/.out。
该组样例满足子任务 6 的限制。
数据范围
对于所有测试数据,满足 ,,。
| 子任务编号 | 分值 | 限制 | 满足特殊性质 |
|---|---|---|---|
| 无 | |||
| 无 | |||
| 无 |
特殊性质 :真实卡牌集合全为 或 。