NYOJ 455
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的更多相关文章
- NYOJ 1007
在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...
- NYOJ 998
这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...
- NYOJ 333
http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...
- LeetCode:455. Assign Cookies
package Others; import java.util.Arrays; //Question 455. Assign Cookies /* Assume you are an awesome ...
- NYOJ 99单词拼接(有向图的欧拉(回)路)
/* NYOJ 99单词拼接: 思路:欧拉回路或者欧拉路的搜索! 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 有向图的欧拉路:abs(In[i ...
- nyoj 10 skiing 搜索+动归
整整两天了,都打不开网页,是不是我提交的次数太多了? nyoj 10: #include<stdio.h> #include<string.h> ][],b[][]; int ...
- 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 ...
- 简答哈希实现 (nyoj 138 找球号2)
例题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=138 代码目的:复习哈希用 代码实现: #include "stdio.h&qu ...
- nyoj 284 坦克大战 简单搜索
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=284 题意:在一个给定图中,铁墙,河流不可走,砖墙走的话,多花费时间1,问从起点到终点至少 ...
随机推荐
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- java: web应用中不经意的内存泄露
前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...
- 笔记:Binder通信机制
TODO: 待修正 Binder简介 Binder是android系统中实现的一种高效的IPC机制,平常接触到的各种XxxManager,以及绑定Service时都在使用它进行跨进程操作. 它的实现基 ...
- 游戏编程系列[1]--游戏编程中RPC协议的使用[3]--体验
运行环境,客户端一般编译为.Net 3.5 Unity兼容,服务端因为用了一些库,所以一般为4.0 或往上.同一份代码,建立拥有2个项目.客户端引用: WindNet.Client服务端引用: OpL ...
- 计算机程序的思维逻辑 (54) - 剖析Collections - 设计模式
上节我们提到,类Collections中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了第一类,本节我们介绍第二类. 第二类方法大概可以分为两组: 接受其他 ...
- Effective java笔记(二),所有对象的通用方法
Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...
- C#发送邮箱
之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了. 之后有整理了一下,写了一个类.直接给类传递信息,就可以发送了. 这里还需要说明的是,发送邮箱需要开通POP3/S ...
- ,net core mvc 文件上传
工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...
- TCP服务和首部知识点小结
服务 应用程序会被TCP分割成数据段,而UDP不分割. TCP有超时重传和确认 如果检验和出错将丢弃 IP数据包可能会失序或者重复,所以TCP会处理 滑动窗口来进行流量控制 对字节流的内容不做任何解释 ...
- 闭区间套定理(Nested intervals theorem)
① ②这里用到了极限与不等关系 ③如果a≠b,那么便不会有$\lim _{n\rightarrow \infty }\left| I_n \right| =0$ ④如果还存在一点c在内,那么同样也不会 ...