1148 Werewolf - Simple Version 甲级
生活随笔
收集整理的這篇文章主要介紹了
1148 Werewolf - Simple Version 甲级
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題意:
有n個玩家,有兩個狼人,有兩人說慌(其中一個為狼人一個為非狼人),找出狼人是誰?
題解:
暴力枚舉
先枚舉i和j為狼人,然后從1號開始假設(shè)其說謊,然后判斷是否符合題目要求
代碼:
#include<stdio.h> #define maxn 110 int wolf[maxn],st[maxn]; int N;int main(){int i,j,k;int w,lair;scanf("%d",&N);for(i=1;i<=N;i++){scanf("%d",&st[i]);}for(i=1;i<N;i++){wolf[i]=1;for(j=i+1;j<=N;j++){wolf[j]=1;w=0;lair=0;for(k=1;k<=N;k++){int seer=st[k];if(seer>0&&wolf[seer]==1){//k說seer是好人,但seer是狼,k就說謊了 lair++;if(k==i||k==j){w++;}}else if(seer<0&&wolf[-seer]==0)//k說seer是狼,但seer不是狼,k就說謊了 {lair++;if(k==i||k==j){w++;}}}if(lair==2&&w==1){//兩個說謊的且一個為狼 printf("%d %d\n",i,j);return 0;}wolf[j]=0;}wolf[i]=0;}printf("No Solution\n");return 0; }總結(jié)
以上是生活随笔為你收集整理的1148 Werewolf - Simple Version 甲级的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国数据中心市场时评—简析全国数据中心布
- 下一篇: 1147 Heaps