您当前的位置: 首页 > 

不牌不改

暂无认证

  • 0浏览

    0关注

    422博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

1089 狼人杀-简单版 (20 分)

不牌不改 发布时间:2022-03-30 21:29:38 ,浏览量:0

题目

题目链接

题解

思维。

首先我们要明确这类问题不用计算机,我们会怎么去做。显然是推矛盾吧,就是假设哪些是狼人、哪些说了假话等等,根据每个人说的话推出矛盾就说明假设不合理,反之正确。

既然要推出矛盾就需要找到一些条件,如果推的过程中发现与条件违背,那么就说明不合理。

条件:

  1. 存在两个狼人
  2. 一个狼人说谎,一个狼人说实话
  3. 有两个人说谎

我不讲我乱七八糟的错误思路了,直接将柳神的!

枚举两个狼人,也就是假设某两个人是狼人(条件1),这也说明了剩下的人都是好人,这是我们的假设,也可以理解为当前枚举到的事实情况;每个人不是都发表了观点了嘛,那我们用每个人的观点与事实比较,把全部说谎的人记录下来;根据条件3,如果说谎人的数量不是2,那么找到错误,推出矛盾,即假设不合理;如果满足数量为2,还需再判断说谎的两个人是否满足其中一个是狼人一个是好人(条件2),只有当两个判断都满足了(条件2条件3)才算找到了一种解法。

代码
#include
using namespace std;
int n, a[110];
int main()
{
	cin >> n;
	for (int i = 1;i > a[i];
	for (int i = 1;i             
关注
打赏
1662186765
查看更多评论
0.0446s