1.应该交代清楚,参加宴会的人不知道一共有多少顶帽子。假如知道有n顶帽子的话,第一次开灯看见有n-1只,自然就知道自己是第n顶黑帽子,所以应该是这n个人在第一次关灯就打自己脸,不过这么一来就没意思了,变成了数帽子游戏。
  2.另一方面,题设输入输出案例中给出输入2,输出2。说明1中的分析的假设条件就是大家不知道总数n,只是能看到n-1顶帽子。
  3.加上大家不知道总数n的条件之后再分析:(上帝视角来看知道共有n只黑帽子)分析A君,A君能看到n-1只黑帽子。
    n=1时,A君看到全白,即看到1-1=0只黑帽子。因为大家知道至少有一只黑帽子,那不用怀疑了,就是自己了,打吧。

n=2时,A君看到2-1=1只黑帽子,但是他并不知道全场是不是只有一只(自己看到一只,如果有两只的话,那另一只只能是自己),如果看到戴黑帽子的人打了自己,那说明这个人严重看到的是全白,包括自己是白。   如果他没有打,那说明戴黑帽子这人严重看到的可不是全白啊,对立面是:“至少要有一只黑”。这和A君看到是一样的啊,那说明场上至少有两只黑帽子,而且这第二只就是自己。没逃了,打吧。

n=3时,A君看待3-1=2只黑帽子,假如场上只有2只黑帽子的话,那这2个戴黑帽子的人的逻辑思考过程就是n=2的情况,那他们在第2次关灯时就会打自己,但事实并非如此,还是没响,那说明这2人眼中看到的可不是只有1只啊,对立面是:至少2只,而不是1只。这就和A君看到的是一样的了,A君由此断定这场上至少3只黑帽子,而且这第3只就是自己。没逃了,打吧。

n=4时,A君看待4-1=3只黑帽子,假如场上只有3只黑帽子的话,那这3个戴黑帽子的人的逻辑思考过程就是n=3的情况,那他们在第3次关灯时就会打自己,但事实并非如此,还是没响,那说明这3人眼中看到的可不是只有2只啊,对立面是:至少3只,而不是2只。这就和A君看到的是一样的了,A君由此断定这场上至少4只黑帽子,而且这第4只就是自己。没逃了,打吧。

    ......

    数学归纳法n=k推出n=k+1的情况。

    得:f(n) = n .

 #include <stdio.h>
#include <cmath>
#include <string>
#include <iostream>
#include <cstdlib>
using namespace std; int main(){
int t;
scanf("%d",&t);
while(t--){
long long n;
scanf("%lld",&n);
printf("%lld\n",n);
} return ;
}

NYOJ 455的更多相关文章

  1. NYOJ 1007

    在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...

  2. NYOJ 998

    这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...

  3. NYOJ 333

    http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...

  4. LeetCode:455. Assign Cookies

    package Others; import java.util.Arrays; //Question 455. Assign Cookies /* Assume you are an awesome ...

  5. NYOJ 99单词拼接(有向图的欧拉(回)路)

    /* NYOJ 99单词拼接: 思路:欧拉回路或者欧拉路的搜索! 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 有向图的欧拉路:abs(In[i ...

  6. nyoj 10 skiing 搜索+动归

    整整两天了,都打不开网页,是不是我提交的次数太多了? nyoj 10: #include<stdio.h> #include<string.h> ][],b[][]; int ...

  7. SGU 455 Sequence analysis(Cycle detection,floyd判圈算法)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=455 Due to the slow 'mod' and 'div' operati ...

  8. 简答哈希实现 (nyoj 138 找球号2)

    例题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=138 代码目的:复习哈希用 代码实现: #include "stdio.h&qu ...

  9. nyoj 284 坦克大战 简单搜索

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=284 题意:在一个给定图中,铁墙,河流不可走,砖墙走的话,多花费时间1,问从起点到终点至少 ...

随机推荐

  1. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  2. java: web应用中不经意的内存泄露

    前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...

  3. 笔记:Binder通信机制

    TODO: 待修正 Binder简介 Binder是android系统中实现的一种高效的IPC机制,平常接触到的各种XxxManager,以及绑定Service时都在使用它进行跨进程操作. 它的实现基 ...

  4. 游戏编程系列[1]--游戏编程中RPC协议的使用[3]--体验

    运行环境,客户端一般编译为.Net 3.5 Unity兼容,服务端因为用了一些库,所以一般为4.0 或往上.同一份代码,建立拥有2个项目.客户端引用: WindNet.Client服务端引用: OpL ...

  5. 计算机程序的思维逻辑 (54) - 剖析Collections - 设计模式

    上节我们提到,类Collections中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了第一类,本节我们介绍第二类. 第二类方法大概可以分为两组: 接受其他 ...

  6. Effective java笔记(二),所有对象的通用方法

    Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...

  7. C#发送邮箱

    之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了. 之后有整理了一下,写了一个类.直接给类传递信息,就可以发送了. 这里还需要说明的是,发送邮箱需要开通POP3/S ...

  8. ,net core mvc 文件上传

    工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...

  9. TCP服务和首部知识点小结

    服务 应用程序会被TCP分割成数据段,而UDP不分割. TCP有超时重传和确认 如果检验和出错将丢弃 IP数据包可能会失序或者重复,所以TCP会处理 滑动窗口来进行流量控制 对字节流的内容不做任何解释 ...

  10. 闭区间套定理(Nested intervals theorem)

    ① ②这里用到了极限与不等关系 ③如果a≠b,那么便不会有$\lim _{n\rightarrow \infty }\left| I_n \right| =0$ ④如果还存在一点c在内,那么同样也不会 ...