6.4 A bunch of people are living on an island, when a visitor comes with a strange order: all blue-eyed people must leave the island as soon as possible. There will be a flight out at 8:00pm every evening. Each person can see everyone else's eye color, but they do not know their own (nor is anyone allowed to tell them). Additionally, they do not know how many people have blue eyes, although they do know that at least one person does. How many days will it take the blue-eyed people to leave?

这道题假定一个岛上有很多人,其中有些人是蓝眼睛的,设定是蓝眼睛的人要尽可能早的离开岛,每天晚上八点都有飞机离开岛。每个人可以看见别人眼睛的颜色,但是不知道自己眼睛的颜色,而且也不能被告知,问需要多少天可以让蓝眼睛人都离开。

这道题让我想起来了很小时候听过的一道智力题,是小猴带帽的问题,说是有四个帽子,三个蓝色一个红色的,有三只小猴一人戴其中一个帽子,每只小猴不知道自己戴的什么颜色的帽子,但能看到其他小猴戴的帽子的颜色。其中一只小猴看到其他两只小猴都是蓝色的帽子,它就在考虑自己的到底是红色的还是蓝色的,当它发现大家都陷入了沉思时,它马上说自己戴的是蓝色的,请问问什么?我小时候想了很久都不明白,其实很简单,如果这小猴戴的是红色的帽子,那么其他小猴马上就知道自己戴的是蓝色的,因为只有一顶红色的帽子,既然其他小猴也不知道,那么自己戴的肯定是蓝色的。

这道题的思路和上面的小猴戴帽有些类似,我们先从简单的开始分析,假设岛上有c个人是蓝眼睛:

1. c = 1, 这种情况最简单,应为那个人看到周围都没有蓝眼睛,由于题目设定了一定有蓝眼睛,那么自己肯定是,所以当晚就可以坐飞机离开。

2. c = 2,这时候蓝眼睛的人可以看到周围有一个人是蓝眼睛,那么他可以推断岛上只有1个或2个蓝眼睛人,如果那人第一晚,没走,他就可以推断出自己也是蓝眼睛,于是两个蓝眼睛的人第二晚同时走了。

3. c = 3,和上面类似,蓝眼睛的人可以看到周围有两个蓝眼睛,则推断岛上有2个或3个蓝眼睛人,如果只有两个蓝眼睛,那么他两第二天晚上就会同时离开,如果第二晚没有离开,则说明自己也是蓝眼睛,则三人第三晚上同时离开。

4. c = c, 推广到c个人,根据如上分析,c个蓝眼睛的人会等到第c天晚上,所有c个蓝眼睛的人同时离开。

[CareerCup] 6.4 Blue Eyes People on Island 岛上的蓝眼人的更多相关文章

  1. CareerCup All in One 题目汇总 (未完待续...)

    Chapter 1. Arrays and Strings 1.1 Unique Characters of a String 1.2 Reverse String 1.3 Permutation S ...

  2. CareerCup All in One 题目汇总

    Chapter 1. Arrays and Strings 1.1 Unique Characters of a String 1.2 Reverse String 1.3 Permutation S ...

  3. Blue Star(日剧:今夜 可否拥你入怀歌词)

    BLUE STAR-COLOR CREATION Oh I Know I need you in my life ひさしぶりの 译:时隔许久的 やわらかなかせがふきぬける 清风温柔吹拂 むねのおくの ...

  4. Fishnet(暴力POJ 1408)

    Fishnet Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1911   Accepted: 1227 Descripti ...

  5. Fishnet(计算几何)

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1642   Accepted: 1051 Description A fis ...

  6. POJ 1408 Fishnet【枚举+线段相交+叉积求面积】

    题目: http://poj.org/problem?id=1408 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...

  7. 蓝眼睛与红眼睛(The blue-eyed islanders puzzle)

    澳大利亚的华裔数学神童陶哲轩曾在网上贴出来一个问题 The blue-eyed islanders puzzle 让大家思考,逗大家玩儿. 说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛.这个 ...

  8. POJ 1408:Fishnet

    Fishnet Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1921   Accepted: 1234 Descripti ...

  9. CSS3与页面布局学习总结(七)——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)

    CSS不像其它高级语言一样支持算术运算.变量.流程控制与面向对象特性,所以CSS样式较多时会引起一些问题,如修改复杂,冗余,某些别的语言很简单的功能实现不了等.而javascript则是一种半面向对象 ...

随机推荐

  1. 使用eclipse遇到问题:the-package-collides-with-a-type

    相似问题:http://stackoverflow.com/questions/12236909/the-package-collides-with-a-type

  2. spring中的 classpath* 存在可移植性问题

    classpath* 的可移植性问题,许多人都应该遇到过了.下面就是一个例子(使用的是spring4.1.5和mybatis3.2.8): <bean id="sqlSessionFa ...

  3. hibernate基本类型映射

    model包: Book.java: package model; import java.sql.Blob;import java.util.Date; public class Book {   ...

  4. Spring学习笔记之 Spring IOC容器(二) 之注入参数值,自动组件扫描方式,控制Bean实例化方式,使用注解方式

     本节主要内容:    1. 给MessageBean注入参数值    2. 测试Spring自动组件扫描方式    3. 如何控制ExampleBean实例化方式    4. 使用注解方式重构Jdb ...

  5. Hadoop Browse the filesystem 无效处理

    当我们安装好并正常运行hdfs后输入http://xxxxxxxxx:50070会进入下图所示的页面. 其中Browse the filesystem 是查看文件系统的入口. 但是在发现这个链接一直无 ...

  6. Hive get table rows count batch

    项目中需要比对两种方法计算生成的数据情况,需要做两件事情,比对生成的中间表的行数是否相同,比对最后一张表的数据是否一致. 在获取表的数据量是一条一条地使用select count(*) from ta ...

  7. 【温故而知新-Javascript】比较 undefined 和 null 值

    JavaScript 中有两个特数值: undefined和null,在比较它们的时候需要留心.在读取未赋值的变量或试图读取对象没有的属性时得到的就是 undefined 值. <!DOCTYP ...

  8. MySql 定时备份数据库

    每天零点备份一次数据库,备份文件放在指定目录(如果目录不存在则新建),按月存储: 将下面这段命令存储为一个 *.bat 文件,添加一个Windows任务计划程序(Task scheduler)指向这个 ...

  9. POJ 3304 Segments --枚举,几何

    题意: 给n条线段,问有没有一条直线,是每条线段到这条直线上的投影有一个公共点. 解法: 有公共点说明有一条这条直线的垂线过所有线段,要找一条直线过所有线段,等价于从所有线段中任选两端点形成的直线存在 ...

  10. UVA 439 Knight Moves --DFS or BFS

    简单搜索,我这里用的是dfs,由于棋盘只有8x8这么大,于是想到dfs应该可以过,后来由于边界的问题,TLE了,改了边界才AC. 这道题的收获就是知道了有些时候dfs没有特定的边界的时候要自己设置一个 ...