news 2026/7/14 11:18:35

小球(drop)(信息学奥赛一本通- P1363)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小球(drop)(信息学奥赛一本通- P1363)

【题目描述】

许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。如果节点是true,则球也会改变它为false,而接下来从右子树走。满二叉树的标记方法如下图:

因为所有的节点最初为false,所以第一个球将会访问节点1,节点2和节点4,转变节点的布尔值后在在节点8停止。第二个球将会访问节点1、3、6,在节点12停止。明显地,第三个球在它停止之前,会访问节点1、2、5,在节点10停止。

现在你的任务是,给定FBT的深度D,和I,表示第I个小球下落,你可以假定I不超过给定的FBT的叶子数,写一个程序求小球停止时的叶子序号。

【输入】

一行包含两个用空格隔开的整数D和I。其中2≤D≤20,1≤I≤524288。

【输出】

对应输出第I个小球下落停止时的叶子序号。

【输入样例】

4 2

【输出样例】

12
#include <iostream> using namespace std; int d,l;//二叉树深度 第l个小球 int tre[1048600]; int root; int main(){ cin>>d>>l; for(int i=1;i<=l;i++){//总共l个小球要下落 root=1;//每次从一号节点出发 for(int j=1;j<d;j++){//每次下落要经过d-1层 最后停留在叶子节点即d层 if(tre[root]==0){//如果这个节点是false,则这个球把它变成true,然后从左子树走 tre[root]=1; root=root*2;//因为是满二叉树,所以root节点左子树为root*2 } else if(tre[root]==1){//如果节点是true,则球也会改变它为false,而接下来从右子树走 tre[root]=0; root=root*2+1;//因为是满二叉树,所以root节点右子树为root*2+1 } } } cout<<root;//最后停留的叶子序号 return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 17:26:55

Java毕设项目推荐-基于JavaEE的电子印章管理系统的设计与实现审批流程、印章信息、印章类型、印章申请、印章下发【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/13 4:15:59

Godot资源提取终极实战手册:非加密PCK文件高效解析全流程

Godot资源提取终极实战手册&#xff1a;非加密PCK文件高效解析全流程 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 本文为您提供Godot游戏资源提取的完整解决方案&#xff0c;通过godot-unpacker工…

作者头像 李华
网站建设 2026/7/14 21:10:51

从传统编程到AI协同:程序员的未来愿景

从传统编程到AI协同:程序员的未来愿景 关键词:人工智能编程、AI协同开发、程序员转型、代码生成、机器学习辅助编程、软件开发范式、未来编程趋势 摘要:本文探讨了从传统编程范式向AI协同开发模式的转变过程。我们将分析这一技术演进的历史背景、当前发展现状和未来趋势,深…

作者头像 李华
网站建设 2026/7/14 20:38:52

Stable Diffusion 3.5 发布:图像质量与社区支持双提升

Stable Diffusion 3.5-FP8&#xff1a;高效推理时代的到来 在生成式 AI 的演进历程中&#xff0c;我们正经历一个关键转折点 —— 模型不再只是“能用”&#xff0c;而是要“好用、快用、人人可用”。就在最近&#xff0c;Stability AI 推出的 Stable-Diffusion-3.5-FP8 正是这…

作者头像 李华
网站建设 2026/7/14 8:56:14

FUXA开源SCADA系统实战:从零打造工业监控平台的避坑指南

FUXA开源SCADA系统实战&#xff1a;从零打造工业监控平台的避坑指南 【免费下载链接】FUXA Web-based Process Visualization (SCADA/HMI/Dashboard) software 项目地址: https://gitcode.com/gh_mirrors/fu/FUXA FUXA作为一款功能强大的Web开源SCADA/HMI系统&#xff0…

作者头像 李华
网站建设 2026/7/14 10:56:33

async 和 await

现代版本的 Python 有一种非常直观的方式来定义异步代码。这使它看起来就像正常的"顺序"代码&#xff0c;并在适当的时候"等待"。 当有一个操作需要等待才能给出结果&#xff0c;且支持这个新的 Python 特性时&#xff0c;你可以编写如下代码&#xff1a;…

作者头像 李华