洛谷 P1039 侦探推理
题目: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 侦探推理相关推荐
- 洛谷P1039侦探推理题解--zhengjun
题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...
- 洛谷P1039 侦探推理
题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...
- 洛谷 P1039 侦探推理 题解
题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...
- [NOIP2003] 提高组 洛谷P1039 侦探推理
题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...
- Luogu P1039 侦探推理(模拟+枚举)
P1039 侦探推理 题意 题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯 ...
- P1039 侦探推理
题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...
- [NOIP2003提高组]侦探推理
题目:洛谷P1039.Vijos P1106.codevs1089. 题目大意:给你一系列证词,要你求出谁是凶手.具体题目见原题. 解题思路:我们枚举犯人和星期,一个一个进行判断.如果成功则记录答案, ...
- 2017提高组D1T1 洛谷P3951 小凯的疑惑
洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...
- 洛谷题目---P1784 数独
题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复.每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无 ...
最新文章
- python 列表中的数字转字符串_python 将列表中的字符串转为数字
- 揭秘:高盛交易员赚取10亿美元利润的神秘“利器”终于公开了
- MxNet教程:使用一台机器训练1400万张图片
- Codeforces1019C
- vue 动态变量名_【告别复制粘贴】动态模板生成小技巧
- JS中的正则表达式小小的技巧---TEST方法的使用
- 极光推送小结 - iOS
- SpringCloud Eureka服务治理
- 安装jdk-linux-i586.rpm.bin
- CMD下的网络安全配置
- Cocos2d-x应用:保存背景音乐和音效设置
- wamp5虚拟主机的配置
- win10如何显示html文件夹,Win10显示隐藏文件夹图标_Win10查看隐藏文件夹方法-192路由网...
- 灰度图转换成彩色图和彩虹图
- 用html制作王者荣耀的界面,《王者荣耀》操作设置详解
- 贝叶斯网络、拉普拉斯平滑
- 上海青少年算法竞赛-6月月赛参考代码
- 最新老男孩Linux架构师实战课程14期视频全套1-13天
- 网上购车平台买车,购车门槛低!
- 3D XPoint的原理解析