题目描述
解题思路
暴力破解。
- 每次假设其中两名玩家为狼人,并按照该假设设置所有人的身份。
- 然后判断每个人是否说谎,即他声称的玩家身份是否与其当前设定身份一致,如果不一致则说谎。并记录每个说谎的人的编号。
- 每人的话判断结束,如果只有两人说谎,且他们的身份为一名好人一名狼人,则输出结果并退出循环。否则调整假设继续遍历。
- 如果遍历结束还没有找到结果,则无解。
易错点
- 如何判断一个玩家是否说谎
- 判断一个人是否说谎,即他声称的玩家身份是否与其当前设定身份一致,如果不一致则说谎。因为当前设定身份就是假定的真实情况,不一致说明他讲的与实际不符。
也许陌生的知识点
vector<int> id(n + 1, 1);
- 设置一个指定长度为 n + 1 且指定元素值为 1 的数组
- 所需头文件:vector
代码示例:
1 |
|