题目:https://www.luogu.org/problemnew/show/P1039

分析:

这道题是一道有技术含量的模拟,我们主要是不要让计算机向人一样思考,只需要让他穷举变化的星期几和当罪犯的人的编号即可,然后就是用string来操作会显得十分方便

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
int n,m,p,fake[21],err,w[200],nx;
string name[100],say[200];
string day[10]={"QAQ","Today is Sunday.","Today is Monday.","Today is Tuesday.","Today is Wednesday.","Today is Thursday.","Today is Friday.","Today is Saturday."};
void set(int who,int yx)
{if(fake[who]&&fake[who]!=yx)err=1;else fake[who]=yx;
}
int main()
{scanf("%d%d%d",&m,&n,&p);for(int i=1;i<=m;i++)cin>>name[i];for(int i=1;i<=p;i++){string nm;cin>>nm;nm.erase(nm.end()-1);for(int j=1;j<=m;j++)if(name[j]==nm)w[i]=j;getline(cin,say[i]);say[i].erase(say[i].begin()); say[i].erase(say[i].end()-1);}for(int td=1;td<=7;td++) for(int px=1;px<=m;px++){err=0;memset(fake,0,sizeof(fake)); for(int i=1;i<=p;i++){int who=w[i];if(say[i]=="I am guilty.")set(who,px==who?1:-1);if(say[i]=="I am not guilty.")set(who,px!=who?1:-1);for(int j=1;j<=7;j++)if(say[i]==day[j])set(who,j==td?1:-1);for(int j=1;j<=m;j++){if(say[i]==name[j]+" is guilty.")set(who,j==px?1:-1);if(say[i]==name[j]+" is not guilty.")set(who,j!=px?1:-1);}}int cnt=0,ppp=0;for(int i=1;i<=m;i++){if(fake[i]==-1)cnt++;if(fake[i]==0)ppp++;}if(!err&&cnt<=n&&cnt+ppp>=n)if(nx&&nx!=px){printf("Cannot Determine");return 0;}else nx=px;}if(!nx)printf("Impossible");else cout<<name[nx];return 0;
}

完结撒花~

转载于:https://www.cnblogs.com/ShineEternal/p/10834311.html

洛谷 P1039 侦探推理相关推荐

  1. 洛谷P1039侦探推理题解--zhengjun

    题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...

  2. 洛谷P1039 侦探推理

    题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...

  3. 洛谷 P1039 侦探推理 题解

    题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...

  4. [NOIP2003] 提高组 洛谷P1039 侦探推理

    题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...

  5. Luogu P1039 侦探推理(模拟+枚举)

    P1039 侦探推理 题意 题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯 ...

  6. P1039 侦探推理

    题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...

  7. [NOIP2003提高组]侦探推理

    题目:洛谷P1039.Vijos P1106.codevs1089. 题目大意:给你一系列证词,要你求出谁是凶手.具体题目见原题. 解题思路:我们枚举犯人和星期,一个一个进行判断.如果成功则记录答案, ...

  8. 2017提高组D1T1 洛谷P3951 小凯的疑惑

    洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...

  9. 洛谷题目---P1784 数独

    题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复.每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无 ...

最新文章

  1. python 列表中的数字转字符串_python 将列表中的字符串转为数字
  2. 揭秘:高盛交易员赚取10亿美元利润的神秘“利器”终于公开了
  3. MxNet教程:使用一台机器训练1400万张图片
  4. Codeforces1019C
  5. vue 动态变量名_【告别复制粘贴】动态模板生成小技巧
  6. JS中的正则表达式小小的技巧---TEST方法的使用
  7. 极光推送小结 - iOS
  8. SpringCloud Eureka服务治理
  9. 安装jdk-linux-i586.rpm.bin
  10. CMD下的网络安全配置
  11. Cocos2d-x应用:保存背景音乐和音效设置
  12. wamp5虚拟主机的配置
  13. win10如何显示html文件夹,Win10显示隐藏文件夹图标_Win10查看隐藏文件夹方法-192路由网...
  14. 灰度图转换成彩色图和彩虹图
  15. 用html制作王者荣耀的界面,《王者荣耀》操作设置详解
  16. 贝叶斯网络、拉普拉斯平滑
  17. 上海青少年算法竞赛-6月月赛参考代码
  18. 最新老男孩Linux架构师实战课程14期视频全套1-13天
  19. 网上购车平台买车,购车门槛低!
  20. 3D XPoint的原理解析

热门文章

  1. 如何进行快速高效的学习
  2. 团队作业6--展示博客
  3. 自动驾驶神经网络是什么,自动驾驶神经网络算法
  4. 中国汽车氢传感器行业市场供需与战略研究报告
  5. union all会过滤掉重复的数据
  6. Python2 中文编码
  7. 电子信息相关术语缩写
  8. 独家 | 机器学习前沿:为什么上下文是一切(附链接)
  9. 懂得三境界-使用dubbo时请求超过问题
  10. 七、后台入口及添加影院实现《仿淘票票系统前后端完全制作(除支付外)》