CodeForces156B Suspects
来源:互联网 发布:淘宝用户名可以更改吗 编辑:程序博客网 时间:2024/06/10 00:26
先假设第i个嫌疑犯是罪犯,看此时说真话的人满不满足m个,若满足,则此假设成立。由于只有一个罪犯。。。故可判定。。。。。。
<span style="font-size:14px;">#include<stdio.h>#include<stdlib.h> #include<string.h>#include<math.h> #define inf 0x7fffffff#define Maxn 100010int a[Maxn],f1[Maxn],f2[Maxn],f[Maxn]; //f1[i]记录猜第i个人为罪犯的人数,f2[i]记录猜第i个人不是罪犯的人数 int main(){ int m,n,i,j,k,no; while(scanf("%d %d",&n,&m)!=EOF){ memset(f,0,sizeof(f)); memset(f1,0,sizeof(f1)); memset(f2,0,sizeof(f2)); no=0; for(i=1;i<=n;i++){ scanf("%d",&a[i]); if(a[i]>0){ f1[a[i]]++; } else{ f2[-a[i]]++; no++; } } k=0; for(i=1;i<=n;i++){ if(f1[i]+no-f2[i]==m){ f[i]=1; //i为罪犯时,满足说真话的人有m个这一条件 k++; } } for(i=1;i<=n;i++){ if(a[i]>0){ if(f[a[i]]&&k==1) printf("Truth\n"); //a[i]为罪犯时满足条件,且满足条件的只有1人 else if(!f[a[i]]) printf("Lie\n"); //a[i]为罪犯时不满足条件 else printf("Not defined\n"); } else{ if(!f[-a[i]]) printf("Truth\n"); else if(f[-a[i]]&&k==1) printf("Lie\n"); else printf("Not defined\n"); } } } //system("pause"); return 0; } </span>
- CodeForces156B Suspects
- [codeforces156B]猜测
- POJ_1611_The Suspects
- poj1611The Suspects
- The Suspects
- The Suspects
- poj_1611The Suspects
- The Suspects
- The Suspects
- The Suspects
- poj1611The Suspects
- The Suspects
- The Suspects
- POJ1611_The Suspects
- The Suspects
- The Suspects
- The Suspects
- The Suspects
- RMAN备份基本用法
- 敏捷开发之测试
- 初识web服务器控件
- strDivide2.cpp字符串划分
- 例说回调函数
- CodeForces156B Suspects
- Linux线程-终止
- Oracle 版本查看及版本号说明
- 设计模式之外观模式
- Android系统框架详解
- 计算机网络----宽带速度kbps、KB、Mbps
- ogre无法读取中文路径的解决办法
- 将年月日时分秒都保存进数据库
- LaTex Templates and Samples for Writing IEEE Conference Paper