Description

一群非常聪明的人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家 看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然 鸦雀无声。一直到第n次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子,多少人戴着白帽子?

Input

多组测试数据。每组输入2个整数k和n,分别表示总人数和第几次关灯时有声音

Output

每组一行,输出2个整数表示戴黑帽子的人数和戴白帽子的人数

Sample Input

2 1
3 1

Sample Output

1 1
1 2

情况分析:

问题的关键就在于何时才能确认自己是否真正为黑色!

所有的问题都把自己当做黑帽子的人考虑

一:两个人的情况

①1白1黑

只要睁眼,黑色帽子的人的眼中必然只有白色帽子,所以会打自己耳光!

二:三个人的情况

①2白1黑

只要黑色帽子的人睁眼,必然会打自己耳光。

②1白2黑

第一次闭眼:没有声音,假设自己是黑帽子,那么,在闭眼中,之所以不打自己耳光,是因为自己的眼中有1黑1白,所以此时无法确认自己是否是黑帽子。

此时,情况分为两种,假设晚上的时候那个头戴黑帽子的人没有发出声音,那么,他的眼中很显然是有黑帽子的,排除了那个白色帽子的人选,剩下的,必然自己是黑帽子。

所以

第二次的时候会有声音。

三:四个人的情况

同理分析即可。

3白1黑:一次

2白2黑:两次

1白3黑:三次

第一次:我的眼中有两个黑,晚上没声音,说明另外两个人眼中也有黑色,其中一者的眼中必然有另一者的黑色帽子。

此时,无法确认自己是否是黑帽子,除非第二天晚上没有发出声音,这个时候才能够确定,在“其他黑帽子人”的眼中,有两顶黑帽子。

所以,第二天晚上也没有声音

在第三天晚上,已经知道别人眼中有两个黑帽子了,排除了白帽子的,那么剩下的,自己肯定就是黑帽子

综上所述,黑帽子的人要确认自己是否是黑帽子,就一定要花费n-1次来确认。

如果还没明白的,自己可以分析一下四个人的情况

代码还是很简单的,就是逻辑关系而已

//看看会不会爆int!数组会不会少了一维!
//取物问题一定要小心先手胜利的条件
#include <bits/stdc++.h>
#pragma comment(linker,"/STACK:102400000,102400000")
#define LL long long
#define ALL(a) a.begin(), a.end()
#define pb push_back
#define mk make_pair
#define fi first
#define se second
#define haha printf("haha\n") int main(){
int a, b;
while(scanf("%d%d", &a, &b) != EOF){
printf("%d %d\n", b, a-b); }
return ;
}

ZSTU OJ 3770: 黑帽子 归纳总结的更多相关文章

  1. Go黑帽子

    使用go语言来实现python黑帽子和绝技的代码 1.unix密码破解器 package main import( "bufio" "flag" "i ...

  2. 读书笔记 ~ Python黑帽子 黑客与渗透测试编程之道

    Python黑帽子  黑客与渗透测试编程之道   <<< 持续更新中>>> 第一章: 设置python 环境 1.python软件包管理工具安装 root@star ...

  3. 2017-2018-2 20179204 PYTHON黑帽子 黑客与渗透测试编程之道

    python代码见码云:20179204_gege 参考博客Python黑帽子--黑客与渗透测试编程之道.关于<Python黑帽子:黑客与渗透测试编程之道>的学习笔记 第2章 网络基础 t ...

  4. ZSTU OJ 3999 零基础学算法---邻接表

    题目:Click here 题意:我就喜欢中文题! 分析:这个题虽然是中文题,但是还是有一点费解的.其实就是给你一棵树,是用图的形式给你的,只知道a,b之间有一条边,并不知道谁是父,谁是子.思路就是先 ...

  5. 《Python黑帽子》_1设置Python环境安装wingIDE

    1首先你得有个Kali 检测python版本 安装pip 2安装wingIDE 网站 http://www.wingware.com 获取WingIDE 3解压wingide并且解决依赖关系 下载后在 ...

  6. python黑帽子

    1.TCP客户端 #AF_INET 使用标准的IPv4地址或者主机名 #SOCK_STREAM是一个客户端 import socket target_host = 'www.google.com' t ...

  7. python黑帽子-黑客与渗透测试编程之道(源代码)

    链接: https://pan.baidu.com/s/1i5BnB5V   密码: ak9t

  8. 《Python黑帽子:黑客与渗透测试编程之道》 自动化攻击取证

    工具安装: 下载源码:https://code.google.com/archive/p/volatility/downloads 工具配置: 获取内存镜像:https://www.downloadc ...

  9. 《Python黑帽子:黑客与渗透测试编程之道》 Windows系统提权

    环境准备: pywin32的安装在第八章的键盘记录中有,这里还需要安装wmi: 在本人的32位win7上本来是没有easy_install这个命令的,这需要安装setuptools-0.6c11.wi ...

随机推荐

  1. SpringBoot日记——错误页处理的配置篇

    在我们访问页面的时候经常会遇到各种问题,比如404,400,500,502等等,可返回的错误页对用户来讲,并不太亲民,所以要定制一下自己的错误页. 我们先访问一个错误页面,看下效果:(虽然给我们提供了 ...

  2. opencv core组件进阶

    1.图像在内存中存储方式,图像矩阵的大小取决于颜色模型,取决于所有的通道数:还有重要的颜色空间缩减的概念:因为如果是RGB的话,使用uchar的话,就有256^3的结合方法.所以要用到颜色缩减的方法, ...

  3. hyperledger-fabirc1.2-ca-server的生产示例

    hyperledger-fabirc1.2-ca-server的生产示例,带TLS 在fabirc-samples/first-network中启动网络,其ca证书是利用crypto的工具生成的,但是 ...

  4. hexo发文章

    http://blog.csdn.net/qq_36099238/article/details/54576089

  5. #Linux第四周学习总结——扒开系统调用的三层皮(上)

    Linux第四周学习总结--扒开系统调用的三层皮(上) 一.用户态.内核态和中断 系统调用通过库函数. 1.用户态和内核态 区分(不同的指令执行级别): 用户态:在相应的低执行状态下,代码的掌控范围受 ...

  6. Linux内核分析第三周总结

    构造一个简单的Linux系统MenuOS 操作系统的"两把宝剑":中断上下文的切换(保存现场和恢复现场).进程上下文的切换 Linux内核源代码简介 --------------- ...

  7. deepin 下mysql编码问题utf8的解决

    deepin 下mysql编码问题utf8的解决 参考链接 http://www.ha97.com/5359.html 与之不同的地方在第二歩 二.最简单的完美修改方法,修改mysql的my.cnf文 ...

  8. 通俗易懂的word2Vec负采样理解

    理解:http://www.shuang0420.com/2017/03/21/NLP%20%E7%AC%94%E8%AE%B0%20-%20%E5%86%8D%E8%B0%88%E8%AF%8D%E ...

  9. word count程序,以及困扰人的宽字符与字符

    一个Word Count程序,由c++完成,有行数.词数.能完成路径下文件的遍历. 遍历文件部分的代码如下: void FindeFile(wchar_t *pFilePath) { CFileFin ...

  10. 正则js

    匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的正则表达式:/&l ...