算法竞赛入门经典 例题6-6 小球下落(python、C)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 !

问题描述:
有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为 1,2,3,… ,2D - 1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次由小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点,如图所示。

一些小球从结点1处下落,最后一个小球将会落到哪里呢?输入叶子深度 D 和小球个数 I,输出第 I 个小球最后所在的叶子编号。假设 I 不超过整棵树的叶子个数,D ≤ 20。
在这里插入图片描述

tips:
给定一颗包含2d个结点(其中d为树的高度)的完全二叉树,如果把结点从上到下从左到右编号为1,2,3……,则结点k的左右子结点编号分别为2k2k+1

Python:

while True:try:D, I = list(map(int, input().split()))n = (1<<D) - 1   # n是最大结点编号s = [False for _ in range (1<<20)]  # 初始值都为假for i in range (I):k = 1while True:s[k] = ~s[k]  # 状态改变if s[k] == 0:k = 2 * k + 1else:k = 2 * kif k > n:   # 出界breakprint (k//2)  # 出界之前的叶子编号except:break

C:

#include<cstdio>
#include<cstring>const int maxd = 20;
int main() {int D, I;while(scanf("%d%d", &D, &I) == 2) {memset(s, 0, sizeof(s));int k, n = (1<<D)-1;for(int i = 0; i < I; i++) {k = 1;for(;;) {s[k] = !s[k];k = s[k] ? k*2 : k*2+1;if(k > n) break;}}printf("%d\n", k/2);}return 0;
}

如果使用题目中给的编号 I,则当 I 是奇数时,它是往左走的的第(I+1)/ 2个小球;当 I 是偶数时,它是往右走的第 I/2 个小球。这样,可以直接模拟最后一个小球的路线:

while(scanf("%d%d", &D, &I) == 2) {int k = 1;for(int i = 0; i < D-1; i++) {if(I%2) {k = k*2;I = (I+1) / 2;}else {k = k*2+1;I /= 2;}printf("%d\n", k)}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLPer,是时候重视因果推理了!这有一份杨笛一等撰写的综述

来源&#xff1a;机器之心编辑&#xff1a;张倩在这篇综述论文中&#xff0c;来自佐治亚理工学院的杨笛一等十几位研究者系统阐述了自然语言处理中的因果推理。科学研究的一个基本目标是了解因果关系。然而&#xff0c;尽管因果在生活和社会科学中扮演了重要角色&#xff0c;它…

【知识图谱】一、知识表示与知识建模

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 一、早期知识表示简介 知识表示的重要性 知识是智能的基础 机器可以获得知识机器可以运用知识 符合计算机要求的知识模式 计算机能存储、处理的知识表示模式数据结构&#xff08;List、Table、T…

【报告】2021物联网行业研究报告(附PDF下载)

来源&#xff1a;兴业证券编辑&#xff1a;Zero导语物联网通过智能感知、识别技术与普适计算等通信感知技术&#xff0c;广泛应用于网络的融合中&#xff0c;也因此被称为继计算机、互联网 之后世界信息产业发展的第三次浪潮。1、云管端的硬件升级云、管、端革新带动物联网爆发…

pyecharts 绘制地图

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; # 导入相关包 from pyecharts import options as opts from pyecharts.charts import Map, Geo, Lindata pd.read_csv(rC:\Users\1979\Desktop\处理后的数据\谷物产量&#xff08;公吨&#xff0…

100句励志名句让你在困境中绝地求生

----------------------不要忘了自己还活着,活着就应该去追求你想要的一切,没有什么能阻挡你,除了你自己...... 1、有志者自有千计万计&#xff0c;无志者只感千难万难。 2、实现自己既定的目标&#xff0c;必须能耐得住寂寞单干。 3、世界会向那些有目标和远见的人让路。 4、必…

表单制作注意事项

所有input的长度都做限制&#xff0c;都有验证方式 限制表单只能提交一次input 样式初始化type 为 mobile 与 number 时调出的键盘界面不同转载于:https://www.cnblogs.com/echolife/p/10718468.html

Python 绘制热力图参数详解

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 参数设置&#xff1a; &#xff08;1&#xff09;热力图输入数据参数: data:矩阵数据集&#xff0c;可以是numpy的数组&#xff08;array&#xff09;&#xff0c;也可以是pandas的DataFrame。如…

斯坦福大学报告称中国AI论文引用率首超美国!但李国杰院士也发文灵魂拷问...

来源&#xff1a;zhihu中国霸榜AI期刊论文发表&#xff0c;论文引用量「首超」美国&#xff01;然而&#xff0c;中国工程院院士李国杰却戳着国内AI研究的脊梁骨说「顶不了天、落不了地」。近日&#xff0c;如何看待「李国杰院士发文称国内 AI 研究顶不了天、落不了地」这一话题…

Jupyter notebook绘制热力图边缘只有一半的问题

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 添加如下代码&#xff1a; bottom, top ax.get_ylim() ax.set_ylim(bottom 0.5, top - 0.5)

刚刚,2021年诺贝尔生理学或医学奖揭晓!

来源&#xff1a;科学网作者&#xff1a;梅进 冯丽妃北京时间10月4日下午5点34分许&#xff0c;2021年诺贝尔生理学或医学奖揭晓。美国科学家David Julius、Ardem Patapoutian获奖&#xff0c;以表彰他们“发现温度和触觉的受体”。2021年的诺贝尔奖单项奖金为1000万瑞典克朗&a…

初学python之路-day04

每天一篇总结&#xff0c;今天学习的是有关于流程控制的知识。 流程控制&#xff0c;顾名思义&#xff0c;在计算机运行中&#xff0c;程序是被某种控制方式按照某种流程或者规律来执行的。而python程序的运行&#xff0c;肯定也是按照某种规律在执行。这些规律可以分为顺序结构…

2021年诺贝尔物理学奖揭晓,复杂科学获得重视

来源&#xff1a;材料科讯部分内容整理&#xff1a;维基百科&#xff0c;诺贝尔奖官网及其推特账号刚刚&#xff0c;诺贝尔奖委员会宣布了2020年诺贝尔物理学奖得主名单&#xff0c;针对本年度诺贝尔物理学奖的预测&#xff0c;可参考以下链接&#xff1a;诺奖120周年了&#x…

【操作系统复习】操作系统的概念、功能和目标

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 文章目录一、概念二、操作系统的功能和目标2.1 作为系统资源的管理者2.2 作为用户和计算机硬件之间的接口2.3 作为最接近硬件的层次一、概念 ✔️ 操作系统&#xff08;Operating System&#xff0…

word 2013 标题设置多级列表

1、问题 要设置标题为多级列表&#xff0c;批量应用 2、解决 1选标题1 2选标题2 。。。以此类推。点确定保存即可 转载于:https://www.cnblogs.com/wdw31210/p/10723696.html

向量将死,哈希是 AI 未来

来源&#xff1a;AI科技评论作者&#xff1a;Hamish Ogilvy编译&#xff1a;冉启行校对&#xff1a;青暮人工智能是建立在向量算法的基础上的&#xff0c;但最新的进展表明&#xff0c;对于某些 AI 应用程序而言&#xff0c;它们可以使用其他二进制来表示&#xff08;例如神经哈…

【操作系统复习】操作系统的特征

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 文章目录一、并发二、共享三、虚拟四、异步一、并发 并发 &#xff1a;指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的&#xff0c;但微观上是交替发生的。 并行&#xff1a…

评分效果

引用的图片 效果展示 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0" />&…

为啥辣椒会辣得人嘴巴疼?这个问题竟然和今年诺奖有关

2021年诺贝尔生理学或医学奖得主&#xff1a;戴维朱利叶斯&#xff08;David Julius&#xff09;和阿尔代姆帕塔普蒂安&#xff08;Ardem Patapoutian&#xff09;来源&#xff1a;科研圈2021 年 10 月 4 日北京时间 17 时 30 分许&#xff0c;美国生理学家戴维朱利叶斯&#x…

蓝桥杯 历届试题 小数第n位

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 资源限制 时间限制&#xff1a;1.0s 内存限制&#xff1a;256.0MB 问题描述   我们知道&#xff0c;整数做除法时&#xff0c;有时得到有限小数&#xff0c;有时得到无限循环小数。   如果我…

ElasicSearch(3) 安装elasticsearch-head

https://github.com/mobz/elasticsearch-head 1.git install git 2.git clone git://github.com/mobz/elasticsearch-head.git 3.安装npm 参考&#xff1a; http://www.runoob.com/nodejs/nodejs-install-setup.html 转载于:https://www.cnblogs.com/mm163/p/10724786.html