树棋
题目信息
时间限制: 1s
空间限制: 512M
输入文件: rab.in
输出文件: rab.out
题目描述
树棋的规则如下:
- 先手方执红子,后手放执蓝子,两人轮流下子
- 给出一棵以 1 节点为根的树,初始所有非叶子节点均为无色,叶节点可能是没有棋子、或者有一颗红子或蓝子
- 每次可以选择一个未被放置棋子的叶节点放置自己的棋子,直到占满所有叶节点
当所有叶节点均放置棋子后,进入结算阶段:
- 自下而上,每个非叶节点将变成所有儿子中出现最多的颜色,保证每个非叶节点都恰好有奇数个儿子
- 若最终根节点为红色,则先手获胜,否则后手获胜
现在给出一局树棋的初始棋盘,Alice 先手,Bob 后手,请问 Alice 是否有先手必胜策略?若有,请求出第一步选择哪些叶子能赢。
输入格式
第一行一个整数
每组数据第一行一个整数
第二行
第三行
输出格式
每组数据输出一行。
若 Alice 有先手必胜策略,先输出一个整数
否则输出一个整数 -1。
样例
样例输入 1
2
2
0 1
-1 -1
2
0 1
-1 1样例输出 1
1 2
-1数据范围与提示
- 对于
的数据, - 对于
的数据, - 对于
的数据,
若你只判断对了 Alice 是否有先手必胜策略,也可以获得该测试点一半的分数。