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,问从起点到终点至少 ...
随机推荐
- MIP开发常见问题解答
校验相关 1. MIP 页面的 <a>链接校验报错,MIP 是强制 target="_blank" 吗? 如果想直接跳转MIP页,可以用mip-link 组件:MIP ...
- SQL Server相关书籍
SQL Server相关书籍 (排名不分先后) Microsoft SQL Server 企业级平台管理实践 SQL Server 2008数据库技术内幕 SQL Server性能调优实战 SQL S ...
- 富文本编辑器Simditor的简易使用
最近打算自己做一个博客系统,并不打算使用帝国cms或者wordpress之类的做后台管理!自己处于学习阶段也就想把从前台到后台一起谢了.好了,废话不多说了,先来看看富文本编辑器SimDitor,这里是 ...
- 【原】AFNetworking源码阅读(一)
[原]AFNetworking源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 AFNetworking版本:3.0.4 由于我平常并没有经常使用AFNetw ...
- 【原】实时渲染中常用的几种Rendering Path
[原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...
- [转]利用URLConnection来发送POST和GET请求
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...
- 神经网络、logistic回归等分类算法简单实现
最近在github上看到一个很有趣的项目,通过文本训练可以让计算机写出特定风格的文章,有人就专门写了一个小项目生成汪峰风格的歌词.看完后有一些自己的小想法,也想做一个玩儿一玩儿.用到的原理是深度学习里 ...
- junit4进行单元测试
一.前言 提供服务的时候,为了保证服务的正确性,有时候需要编写测试类验证其正确性和可用性.以前的做法都是自己简单写一个控制层,然后在控制层里调用服务并测试,这样做虽然能够达到测试的目的,但是太不专业了 ...
- ASP.NET Core的路由[3]:Router的创建者——RouteBuilder
在<注册URL模式与HttpHandler的映射关系>演示的实例中,我们总是利用一个RouteBuilder对象来为RouterMiddleware中间件创建所需的Router对象,接下来 ...
- SQL Server-聚焦APPLY运算符(二十七)
前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...