堆中的路径

作者 陈越

单位 浙江大学

将一系列给定数字插入一个初始为空的最小堆 h。随后对任意给定的下标 i,打印从第 i 个结点到根结点的路径。

输入格式:

每组测试第 1 行包含 2 个正整数 n 和 m (≤103),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间 [−104,104] 内的 n 个要被插入一个初始为空的小顶堆的整数。最后一行给出 m 个下标。

输出格式:

对输入中给出的每个下标 i,在一行中输出从第 i 个结点到根结点的路径上的数据。数字间以 1 个空格分隔,行末不得有多余空格。

输入样例:

5 3
46 23 26 24 10
5 4 3

输出样例:

24 23 10
46 23 10
26 10

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

C程序如下:

#include <stdio.h>
#include <stdlib.h>void heapifyUp(int heap[], int index) {//比较新加入的数是否满足最小堆的要求while (index > 1 && heap[index] < heap[index / 2]) {//如果不满足最小堆的要求,就一直循环比较到满足或者根结点为止int temp = heap[index];//交换不满足的结点heap[index] = heap[index / 2];heap[index / 2] = temp;index /= 2;//此节点的父节点为还结点编号/2}
}int main() {int n, path;scanf("%d%d", &n, &path);//输出插入元素的个数,和输出的路径条数int *heap = (int *)malloc((n + 1) * sizeof(int));//为heap数组分配n+1个内存空间,要从1的位置开始创建最小堆for (int i = 1; i <= n; i++) {//输入插入的数scanf("%d", &heap[i]);heapifyUp(heap, i);}int print;while (scanf("%d", &print) != EOF) {//打印要输出的路径int count = 0;for (int i = print; i >= 1; i /= 2) {if (count == 0) {printf("%d", heap[i]);//根据题目要求第一个数特殊处理} else {printf(" %d", heap[i]);}count++;if (count == path) {//根据题目要求最长路径为pathbreak;}}printf("\n");//输出换行符}free(heap);//释放数组的空间return 0;
}

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

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

相关文章

20240624(周一)欧美股市总结:AI股再熄火!标普纳指连跌三日,英伟达市值跌穿3万亿美元,芯片股指跌3%

市场等待周五的美国PCE重磅通胀数据&#xff0c;今年票委、旧金山联储主席戴利称降息之前“还有更多工作要做”&#xff0c;纳指尾盘加速跳水并收跌1%&#xff0c;但道指五连涨至五周高位。谷歌、微软脱离最高&#xff0c;英伟达跌6.7%为近两个月最差&#xff0c;三天累跌近13%…

vue封装一个简单的权限管理功能, 控制页面的按钮显示与隐藏

vue封装一个简单的权限管理功能, 控制页面的按钮显示与隐藏 1、在项目入口html文件创建全局变量 <head><script>// 创建全局变量window.SITE_CONFIG {};// 登录成功后获取到的按钮权限数据存储到这里window.SITE_CONFIG[purview] [];</script> </head…

vue3-openlayers 点击多边形弹框,高亮多边形,自定义属性传递,鼠标悬浮多边形上动态修改鼠标样式

本篇介绍一下使用vue3-openlayers点击多边形弹框&#xff0c;高亮多边形&#xff0c;自定义属性传递&#xff0c;鼠标悬浮多边形上动态修改鼠标样式 1 需求 加载天地图&#xff0c;polygon传递自定义属性标悬浮在polygon上&#xff0c;根据自定义属性&#xff0c;动态修改鼠标…

AI学习指南机器学习篇-KNN的优缺点

AI学习指南机器学习篇-KNN的优缺点 在机器学习领域中&#xff0c;K最近邻&#xff08;K-Nearest Neighbors&#xff0c;KNN&#xff09;算法是一种十分常见的分类和回归方法之一。它的原理简单易懂&#xff0c;但在实际应用中也存在一些优缺点。本文将重点探讨KNN算法的优缺点…

web系统数据库敏感数据处理

一、前言 web系统数据库中保存的公民信息不允许明文存储&#xff0c;比如手机号&#xff0c;身份证号&#xff0c;收货地址等。 二、处理方式 数据库中密文存储&#xff0c;web通过注解的方式对数据加解密处理&#xff0c;下面是处理方法 1、编写接口 public interface E…

IIC学习笔记

目录 #I2C涉及相关知识 #I2C相关介绍 欢迎指正&#xff0c;希望对你&#xff0c;有所帮助&#xff01;&#xff01;&#xff01; 个人学习笔记&#xff0c;参考文献&#xff0c;链接最后&#xff01;&#xff01;&#xff01; #I2C涉及相关知识 SDA串行数据线&#xff1a; Ser…

AI降重技术:论文查重率的智能解决方案

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下&#xff0c;延毕的威胁可能就在眼前。对于即将告别校园的学子们&#xff0c;这无疑是个噩梦。四年磨一剑&#xff0c;谁也不想在最后关头功亏一篑。 查重率过高&#xff0c;无非以下两种原因。要么是作为“…

软通动力携子公司鸿湖万联中标南方电网调峰调频发电有限公司数据采集装置研究开发项目

近日&#xff0c;软通动力携子公司鸿湖万联成功中标南方电网调峰调频发电有限公司数据采集装置研究开发项目。该项目是针对智能化、国产化、自主可控业务需求研制的基于国产芯片、OpenHarmony系统的抽蓄电站机械化施工数据采集设备。本次中标是软通动力布局数字能源战略的一次胜…

大数据组件--Hue

Apache Hue hue是一个集成化的大数据可视化软件&#xff0c;可以通过hue访问浏览操作主流的大数据生态圈软件。hue本身来自于cloudera后来贡献给了apachehue本身是一个web项目&#xff0c;基于python实现的&#xff0c;通过该web项目的UI集成了各个软件的UI 下面是一个hue调度…

【MySQL】如果表被锁可以尝试看一下事务

今天在MySQL中删除表的时候&#xff0c;发现无法删除&#xff0c;一执行drop&#xff0c;navicat就卡死。 通过 SHOW PROCESSLIST显示被锁了 kill掉被锁的进程后依旧被锁 最后发现是由于存在为执行完的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; kill掉这些事务以…

证书在JAVA中的使用

1.需求 需要访问一个https的接口,是基于tlsv1.2协议的,目前有ca根证书(ca.cert),客户端证书(sparkercomm01.cert)和客户端私钥文件(sparkercomm01.key) 2.转化成jdk能识别的文件 2.1.ca根证书添加到jdk密钥库 执行命令,得到ca.jks文件 keytool -import -alias c…

EXCEL表格怎么批量删除日期后的时间?

竞价师最近有点忙了&#xff0c;因为百度新出来一个“线索有效性诊断”功能 一、下载电话、表单、咨询表格 二、选中整列 三、选中ctrlf 进行替换&#xff0c;日期输入空格&#xff0c;时间输入*&#xff0c;替换为空即可&#xff01; 四、整列单元格格式“日期”拉倒底部&…

大脑网路分析的进展:基于大规模自监督学习的诊断| 文献速递-先进深度学习疾病诊断

Title 题目 BrainMass: Advancing Brain Network Analysis for Diagnosis with Large-scale Self-Supervised Learning 大脑网路分析的进展&#xff1a;基于大规模自监督学习的诊断 01 文献速递介绍 功能性磁共振成像&#xff08;fMRI&#xff09;利用血氧水平依赖&#x…

威士顿携手 TDengine,共同推动工业数据处理效率提升

在全面推动数字化转型的背景下&#xff0c;实体经济与数字化经济的深度融合正成为行业新旧动能转换、建设现代工业经济运行体系、实现高质量发展的战略支点。其中&#xff0c;时序大数据的有效处理成为转型的关键驱动力&#xff0c;为实现智能化决策、精准运营和未来发展提供有…

代码随想录算法训练营:15/60

非科班学习算法day15 | LeetCode110:平衡二叉树 &#xff0c;Leetcode257:二叉树的所有路径 &#xff0c;Leetcode404:左叶子之和&#xff0c;Leetcode222:完全二叉树的节点个数 目录 介绍 一、基础概念补充&#xff1a; 1.平衡二叉树 二、LeetCode题目 1.LeetCode110:平…

面试-java多线程与并发

1.如何实现处理线程的返回值 (1)主线程等待法 主线程等待法&#xff1a;程序执行时&#xff0c;没有等到value值赋予完成&#xff0c;就直接在主函数 中执行打印value的值。 缺点&#xff1a;需要自己去实现循环等待的逻辑。若需要等待的变量变多&#xff0c;需要等待的时间可能…

【信息系统项目管理师知识点速记】变更管理

19.2 变更管理 变更管理是指在信息系统开发与维护过程中,控制所有变更请求,从而确保变更的顺利实施和系统的稳定运行。变更管理的目标是使变更过程透明化,保证每个变更有序可控地进行,减少变更带来的负面影响,提高变更实施的效率和质量。变更管理包括变更申请、评估、批准…

qt.qpa.xcb: could not connect to display问题解决

1、问题描述 以服务器pi5作为远程解释器&#xff0c;本地win11使用vscode远程调试视觉时报错如下&#xff1a; qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxxx" even though it was …

英伟达GB200系列AI芯片供不应求;阿里云通义灵码上线Visual Studio插件市场

&#x1f989; AI新闻 &#x1f680; 英伟达GB200系列AI芯片供不应求 摘要&#xff1a;英伟达GB200系列AI芯片供不应求&#xff0c;台积电和日月光等公司获追加订单。GB200芯片性能提升30倍&#xff0c;成本和能耗降至25分之一。预计2025年出货量突破百万颗&#xff0c;后段封…

ArkUI JS层

JS层代码分析 关键方法&#xff1a; initialRenderobserveComponentCreationViewStackProcessor.StartGetAccessRecordingForViewStackProcessor.StopGetAccessRecording()loadDocument class Index extends ViewPU {constructor(parent, params, __localStorage, elmtId -…