当前位置: 首页 > news >正文

博客网站制作北京个人网站开发制作

博客网站制作,北京个人网站开发制作,公司网页制作具体做什么,再网站里做商家店铺此题难度为:提高/省选- 作者为:CCF_NOI 题目描述 明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明…

此题难度为:提高+/省选-

作者为:CCF_NOI

题目描述

明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这个罪犯。接着,明明逐个询问每一个同学,被询问者可能会说:

证词中出现的其他话,都不列入逻辑推理的内容。

明明所知道的是,他的同学中有 NN 个人始终说假话,其余的人始终说真。

现在,明明需要你帮助他从他同学的话中推断出谁是真正的凶手,请记住,凶手只有一个!

输入格式

输入由若干行组成。

第一行有三个整数,M,NM,N 和 PP。MM 是参加游戏的明明的同学数,NN 是其中始终说谎的人数,PP 是证言的总数。

接下来 MM 行,每行是明明的一个同学的名字(英文字母组成,没有空格,全部大写)。

往后有 PP 行,每行开始是某个同学的名宇,紧跟着一个冒号和一个空格,后面是一句证词,符合前表中所列格式。证词每行不会超过 250250 个字符。

输入中不会出现连续的两个空格,而且每行开头和结尾也没有空格。

输出格式

如果你的程序能确定谁是罪犯,则输出他的名字;如果程序判断出不止一个人可能是罪犯,则输出 Cannot Determine;如果程序判断出没有人可能成为罪犯,则输出 Impossible

输入输出样例

输入 #1

3 1 5
MIKE
CHARLES
KATE
MIKE: I am guilty.
MIKE: Today is Sunday.
CHARLES: MIKE is guilty.
KATE: I am guilty.
KATE: How are you??

输出#1

MIKE

说明/提示

对于 100\%100% 数据,满足 1≤M≤20,0≤N≤M,1≤ P≤100。

解析加代码:

//可以用map存人名对应的下标 //我们枚举每一个人i,假设i是罪犯
//然后枚举今天是星期几,用day表示 
//然后判断有没有矛盾//如何判断?
//进行每一次判断的时候,先使所有人的状态不确定,也就是不知道他们会说真话假话
//TF[a]==-1是不确定,TF[a]=1是说真话,TF[a]=0是说假话
//T是说真话的人数,F是说假话的人数 
//设罪犯为 i 
//设flag为这句话是真话还是假话,flag=1是真话,flag=0是假话 
//id是说这句话的人 
//枚举每一句话
//	看一下id以前的状态,如果状态不确定(TF==-1),就TF[id]=flag
//	否则,如果和以前状态一样(TF[id]==flag),就没有矛盾,
//	TF[id]!=flag就是出现了矛盾(因为一个人始终直说一种话),判断不出来了,直接return去枚举下一个人是罪犯 
//如果F>n或者T>m-n了,也就是说假话的人数超过了题目中给的人数,矛盾,return
//如果找到了不止一个罪犯,输出"Cannot Determine",直接exit(0) //怎么知道这句话是真话假话? 
//①如果话里有 "I am guilty."
//	那么看一下id是不是i,不是的话,就是在说假话
//②话里有"I am not guilty"
//	看一下id是不是i,不是的话,就是在说真话,否则就是假话 
//③话里有"xxx is guilty"
//	如果xxx是i的话,就是真话,否则是假话
//④话里有"xxx is not guilty"
//	如果xxx不是i的话,就是真话,否则是假话
//⑤话里有"Today is XXX"
//	如果xxx与day一样,就是真话,否则是假话#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;string S[10]=
{"Today is Sunday.","Today is Monday.","Today is Tuesday.","Today is Wednesday.","Today is Thursday.","Today is Friday.","Today is Saturday.",
};int m,n,p;
int T,F,ans;
int TF[25];
struct Sen
{int id;string s;
}sen[105];
map<string,int> ma;bool judgeTF(int id,bool flag)	//看一下有没有冲突,return 1 表示有冲突 
{if(TF[id]==-1)		//状态不确定 {TF[id]=flag;	//赋状态 if(flag)	//说真话的人数++ ++T;else	//说假话的人数++ ++F;}elsereturn TF[id]!=flag;	//和之前的一不一样,一样返回0,不一样返回1 if(F>n||T>m-n)	//说假话的人比n多或者是说真话的人比m-n多 return 1;return 0;
}void judge(int id,string day)
{memset(TF,-1,sizeof(TF));	//所有人都不知道说的是真话假话 T=F=0;		//说真话、假话人数置0 string tmp;for(int i=1;i<=p;++i){int pos=sen[i].s.find("I am guilty.");	//pos为-1则没说这句话 if(~pos){if(judgeTF(sen[i].id,sen[i].id==id))	//因为我们假设了id是罪犯,所以不是id的人就不是罪犯,就是在说假话return;}pos=sen[i].s.find("I am not guilty");if(~pos){if(judgeTF(sen[i].id,sen[i].id!=id))return;}pos=sen[i].s.find(" is guilty.");if(~pos){tmp=sen[i].s;tmp.erase(pos,11);if(judgeTF(sen[i].id,ma[tmp]==id))return;}pos=sen[i].s.find(" is not guilty.");if(~pos){tmp=sen[i].s;tmp.erase(pos,15);if(judgeTF(sen[i].id,ma[tmp]!=id))return;}pos=sen[i].s.find("Today is ");if(~pos){if(judgeTF(sen[i].id,sen[i].s==day))return;}}if(ans&&ans!=id)	//找到了不止一个罪犯 {puts("Cannot Determine");	//不能确定 exit(0);}ans=id;		//id是罪犯 
}string s[25],name,a;
int main()
{scanf("%d%d%d",&m,&n,&p);for(int i=1;i<=m;++i){cin>>s[i];ma[s[i]]=i;		//存名字标号 }for(int i=1;i<=p;++i){cin>>name;		//输入说话者 name.erase(name.length()-1,1);		//把后边的冒号搞掉 getline(cin,a);a.erase(0,1);	//把前边的空格搞掉 if(a[a.length()-1]=='\n'||a[a.length()-1]=='\r')	//把坑爹的换行符搞掉 a.erase(a.length()-1,1);sen[i].id=ma[name];		//存说话者 sen[i].s=a;		//存说话内容 }for(int i=1;i<=m;++i)	//假设第i个人是罪犯 for(int j=0;j<7;++j)	//假设今天是S[j]天 judge(i,S[j]);if(!ans)	//找不到罪犯 puts("Impossible");elsecout<<s[ans];	//罪犯名字 return 0;
}

成功图片: 

 

http://www.yayakq.cn/news/713655/

相关文章:

  • 微信学校网站模板wordpress字体代码
  • 点击一个网站跳转到图片怎么做山西住房和建设厅网站
  • 主题 外贸网站 模板下载企业建站需要多少钱
  • 中小企业网站制作是什么重庆企业网站建设哪家专业
  • 做spa会所网站弧光之源网站建设
  • 如何把图片放到网站后台北京网站开发怎么做
  • 国外设计网站怎么进入网上申请注册公司网址
  • 怎么用 c文件做网站wordpress js cdn
  • dz论坛网站建设南宁网站建设索q.479185700
  • 菜鸟网站做图赚钱软件app
  • 网站用哪个数据库wordpress模板编辑
  • 网站首页策划wordpress怎么加锚文本
  • 邳州网站制作wordpress 二维码 插件
  • php网站带数据库网站建设 文库
  • 给个网站做导航违法吗kali安装wordpress
  • 如何做网站网页品牌营销策划网站
  • 模仿别人网站侵权郴州网课
  • 课程网站开发过程标准网站建设报价单
  • 门源县住房和城乡建设局网站果洛wap网站建设多少钱
  • 一站式网站建设用途网站怎么做谷歌推广
  • 用asp.net制作网站英文网站中英对照
  • 做100个垂直网站柳州游戏网站建设
  • 网站建设歺金手指排名15一键建站公司
  • 做一百度网站吗钉子 wordpress
  • 南阳做做网站老榕树智能建站系统
  • 外贸网站建设560新吴区网站建设
  • 网站开发及技术珠海网站建设怎么样
  • 四合一网站建设源码网站制作旅行社
  • 2345网址下载湖南网络优化
  • 制作一个网站需要什么建e室内设计网3d模型