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

#include <math.h>
#include <vector>
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    vector <int> say(n+1);
    for(int i=1;i<=n;i++)
        cin>>say[i];
    for(int i=1;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            vector <int> lie, a(n+1,1);
            a[i]=a[j]=-1;
            for(int k=1;k<=n;k++)
               if(say[k]*a[abs(say[k])]<0)
                   lie.push_back(k);
            if(lie.size()==2&&a[lie[0]]+a[lie[1]]==0)
            {
                cout<<i<<" "<<j<<endl;
                return 0;
            }
        }
    }
    cout<<"No Solution"<<endl;
    return 0;
}

这个是从网上找到的代码,感觉写的很简洁,用到了vector,正好学习一下vector的用法。

原文地址:https://www.cnblogs.com/QRain/p/12273843.html

时间: 2024-12-29 11:56:25

1089 狼人杀-简单版 (20分)的相关文章

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

以下文字摘自<灵机一动·好玩的数学>:“狼人杀”游戏分为狼人.好人两大阵营.在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”.已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎.扮演狼人角色的是哪两号玩家? 本题是这个问题的升级版:已知 N 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并

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

#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; vector<int> v(n+1);//可以自定义vector长度 for(int i=1;i<=n;i++) cin>>v[i]; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { vector<int> lie; vector&

PAT 乙级 1089 狼人杀

1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N=107; 4 int v[N],p[N]; int n; 5 int ans[5]; int cnt; 6 int main () 7 { 8 cin>>n; 9 for (int i=1;i<=n;i++) { 10 cin>>v[i]; 11 p[i]=1; 12 } 13 // p[i]=-1 表示第i个人是狼人 14 for (i

浙大版《C语言程序设计(第3版)》题目集 练习4-10 找出最小值 (20 分)

练习4-10 找出最小值 (20 分) 本题要求编写程序,找出给定一系列整数中的最小值. 输入格式: 输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔. 输出格式: 在一行中按照“min = 最小值”的格式输出n个整数中的最小值. 输入样例: 4 -2 -123 100 0 输出样例: min = -123 思路:假设输入的第一个是最小值,如果后面输入的小于最小值,更新最小值. 代码如下: #include <stdio.h> int main() { int n, i, mi

PAT 甲级 1027 Colors in Mars (20 分)(简单,进制转换)

1027 Colors in Mars (20 分) People in Mars represent the colors in their computers in a similar way as the Earth people. That is, a color is represented by a 6-digit number, where the first 2 digits are for Red, the middle 2 digits for Green, and the

PAT 甲级 1041 Be Unique (20 分)(简单,一遍过)

1041 Be Unique (20 分) Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1]. The first one who bets on a unique number wins. For example

PAT 甲级 1058 A+B in Hogwarts (20 分) (简单题)

1058 A+B in Hogwarts (20 分)   If you are a fan of Harry Potter, you would know the world of magic has its own currency system -- as Hagrid explained it to Harry, "Seventeen silver Sickles to a Galleon and twenty-nine Knuts to a Sickle, it's easy enou

1148 Werewolf - Simple Version (20 分)

1148 Werewolf - Simple Version (20 分) Werewolf(狼人杀) is a game in which the players are partitioned into two parties: the werewolves and the human beings. Suppose that in a game, player #1 said: "Player #2 is a werewolf."; player #2 said: "P

狼人杀新手进阶指南

大家好,我是未昊,之前答应过找完工作做一次狼人杀经验分享,录视频比较麻烦,所以就写一篇文章来向你展示一个 2.5 阶选手的狼人杀世界观.主要会从基本规则,基本/多重逻辑,心态视角等几个方面进行阐述. 写在前面 本文主要面向新手(打过几局,大致清楚规则) 本文主要偏介绍,旨在启发,没有过多探讨技巧性的东西 基本规则 狼人杀是一个发言+逻辑游戏,常见的是 9 人局或者 12 人局,下面我主要以 12 人局为例进行介绍. 所有玩家分为狼人阵营和好人阵营.一般是 4+4+4 的板子,即 4 张狼人.4