(阿里云)问题描述:有101根电线 每根的一头在楼底  另一端在楼顶  有一个灯泡 一个电池 无数根很短的电线  怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。

不知道标准的做法是怎样的,我只想到了以下一种办法:

在楼顶的阶段:
首先任意选出7根线(例如最左边的),可命名为A0~A6,那么还剩下94根线,编号为0~93,对于i线,可以写出i的二进制形式,例如11号的线可以写为0001011,那么11号线的楼顶这端就可以和A0,A1,A3用短电线相连,即二进制形式位为1则与对应的A中的线相连。

然后对A0~A6这7跟线按照如下关系连接起来:

比如横坐标为A2,纵坐标A1的格子为1表示把A2和A1连接起来,为什么要这样连接,很快就知道了。

现在我们可以带着电池和灯泡下楼了。

在楼下的阶段:
我们给每根线编号,比如B0~B100,那么现在开始做一件体力活,依次将两根电线的一端用灯泡和电池连接起来,如果灯泡亮了,那么就给两个电线(比如B3和B21)都加上一分,当你把所有电线的组合都做完之后,电线的分大概是这样子,有94根电线的分不超过7,而有7根电线的分则大于7,比如,
7,6,0,2,…,3,5,1,5 和52, 51, 50, 48, 49, 34, 31

显然出众的7根线就是A0~A6,现在问题就是如何区分A0~A6,很显然,我们可以通过得分来区分A0~A6。

定义A0的基本得分是0~93中的数第0位不为1的个数,A1、A2余次类推,然而,我们会发现,基本得分有相同的情况,事实上,A0~A6的基本得分依次为: 47, 46, 46, 46, 46, 32, 30,也就是说,仅依靠基本得分,分不清。

这时我们在楼上阶段的对这7根线之间作的连接的作用就出来了,在楼顶的这些工作使得它们有了额外的得分并且两两得分不一样,事实上,得分52的线,就是A0,51的,是A1…

于是A0~A6就区分开了。

最后一步就是对剩下的94根线中的每一根通过已经确定的A0~A6来确定他的编号的二进制形式,比如B23只有通过电池灯泡连接A0,A3,A6时灯泡会亮,那么楼底的B23就是楼顶的64+8+1=73号线。

不知道有没有更好的办法,总觉得工作量太大了。

有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。相关推荐

  1. 有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。

    (阿里云)问题描述:有101根电线 每根的一头在楼底  另一端在楼顶  有一个灯泡 一个电池 无数根很短的电线  怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚. 不知道标准的做法是怎样的,我只想 ...

  2. C语言:一个小猴子边上有100根香蕉,他要走过50米才能到家,每次他最多搬50根香蕉搬到家里,请问它最多能把多少根香蕉搬到家里?

    代码如下: /********************************************************功能:求以下问题*一个小猴子边上有100根香蕉,他要走过50米才能到家,每 ...

  3. 【练习】树(Tree, UVa 548)给一棵点带权(权值各不相同)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小。

    给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小.如果有多解,该叶子本身的权应尽量小.输入中每两行表示一棵树,其中第一行为中序遍 ...

  4. 笔试编程题 拼凑正方形 Java题解 牛牛有4根木棍,长度分别为a,b,c,d。羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一。牛牛需要用这四根木棍拼凑一个正方

    题目描述 牛牛有4根木棍,长度分别为a,b,c,d.羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一.牛牛需要用这四根木棍拼凑一个正方形出来,牛牛最少需要支付多少硬 ...

  5. 3.一根稻草可能会压死一头牛

    一次,一位记者朋友跟我约好,下午四点钟在我办公室见面,谈点儿事情. 到了约定的时间,她没来.过了一刻钟,她出现在我办公室门口,神色慌张,满头大汗,连声说对不起.我看出她有很深的自责. 谈完预约的事情后 ...

  6. Peter有n根烟,他每吸完一根烟就把烟蒂保存起来,k(k >1)个烟蒂可以换一个新的烟,那么Peter最终能吸到多少根烟呢?

    #include<iostream> using namespace std; int main() {  int n, k,sum,i;  cin >> n >> ...

  7. Java其实很简单,就这么点东西,搞来搞去十几年,网友:坐等被喷

    Java的特点有很多,它具有简单性.面向对象.可移植性.安全性.并发机制.支持可视化图形界面等特点.Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等. Java 已由专业 ...

  8. closewait一直不释放_家里甲醛一直去不掉,原来是原理弄错了!跟邻居学来这一招搞定...

    甲醛是室内空气的主要污染物之一,我们有80%的时间都在室内,而甲醛的释放周期为3-15年,长时间暴露在甲醛环境下不仅会引起慢性疾病,还会对免疫功能.中枢神经系统造成永久性伤害. 研究显示,甲醛浓度与来 ...

  9. 短信发送工具,便捷开发,直接拿去用

    写了一个utils,关于用get,或者post 形式发送短信 /** * Created by zhuo 2017/12/8. * 发送短信 */ public class SmsUtil {prot ...

最新文章

  1. 关于浮点数的误差理解
  2. leveldb 学习。
  3. OpenCV里IplImage的widthStep参数 和width参数
  4. Django09:图书管理系统笔记/choices用法/ MTV与MVC模型/多对多三种创建方式
  5. REVERSE-PRACTICE-BUUCTF-5
  6. Python中print函数的使用
  7. C/C++线程与多线程工作笔记0006---VC++中_T()的作用
  8. 多种方式创建 Entity Framework Core 上下文
  9. MediaInfo源代码分析 2:API函数
  10. 【渝粤教育】国家开放大学2018年秋季 0008-21T简明现代汉语 参考试题
  11. 初学linux网络服务之DHCP实验
  12. 悄悄告诉你如何快速突破大厂逻辑题
  13. 运行MINGW时遇到缺少.dll
  14. .NET NAudio音频录制方法 2021-02-13
  15. [SRv6]《SRv6网络编程》SRv6 OAM与随路网络测量(2/2:IFIT)
  16. 史蒂夫·乔布斯传记_Chapter 4: Atari and India
  17. Kanzi自定义插件节点属性、自定义消息以及自定义响应
  18. Excel怎样设置标题行,Excel工作表中标题行的处理
  19. 【深度学习kears+tensorflow】电影评论分类:二分类问题
  20. 永久60服务器消息,魔兽世界怀旧服:永久60级已经成为了另一个游戏,这如你所愿吗?...

热门文章

  1. 【数据分析项目实战】商铺数据加载及存储
  2. 【设计模式】【行为型】模板模式之模拟去商场购物
  3. 【Vue】method间互相调用
  4. 教育知识和能力2--课堂教学
  5. 现在备考2023年5月软考网络工程师时间够吗?
  6. OpenMP中的一些函数
  7. thinkPHP+vue医院核酸检测预约挂号系统 nodejs微信小程序
  8. redis雪崩、穿透、击穿
  9. 现货黄金短线技巧_随机强弱指数(StochRSI)
  10. 批量创建10个用户stu01-stu10