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

输入格式:

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

输出格式:

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

#include<cstdio>
#include<cmath>
#include<set>
#include<map>
#include<string>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int a[10000];
int size=0;
const int INF=0x3f3f3f3f;
void insert(int x){size++;int i;for(i=size;x<a[i/2];i/=2){a[i]=a[i/2];}a[i]=x;
}int main()
{int n,m;scanf("%d%d",&n,&m);size=0;a[0]=-10001;int size=0;for(int i=1;i<=n;i++) {int x;scanf("%d",&x);insert(x);}for(int i=0;i<m;i++){int x;scanf("%d",&x);for(int j=x;j>=1;j/=2){if(j==1) printf("%d",a[j]);else printf("%d ",a[j]);}printf("\n");}   return 0;
}
---------------------
作者:Joecy999
来源:CSDN
原文:https://blog.csdn.net/yyyyz999/article/details/79851520
版权声明:本文为博主原创文章,转载请附上博文链接!

  

转载于:https://www.cnblogs.com/JAYPARK/p/10013409.html

PTA——堆中的路径相关推荐

  1. 堆中的路径 (25 分)

    7-17 堆中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000) ...

  2. 7-3 堆中的路径 (25 分)

    7-3 堆中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000), ...

  3. 【数据结构笔记18】堆中的路径与C实现(堆元素到根的路)径)

    本次笔记内容: 小白专场:堆中的路径 文章目录 题意理解 堆的表示及其操作 主程序 题意理解 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标'i',打印从H[i]到根结点的路径. ...

  4. 数据结构 堆中的路径(最小堆)

    题目: 将一系列给定数字插入一个初始为空的小顶堆H[ ].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数.以 ...

  5. 05-树7 堆中的路径 (25 分)

    将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤),分别是插入元素的个数.以及需要打印的路径条 ...

  6. 数据结构5-4:白白专场——堆中的路径——C语言实现

    堆是按照一定顺序组织的完全二叉树,所以堆的表示一种最直接了当也是很完美的一种表示就是用数组来表示. #define MAXN 1001 #define MINH -10001int H[MAXN], ...

  7. JVM:堆中对象的创建?定位?可达性?

    对象的创建 指针碰撞:若是堆中的内存是绝对规整的,所有用过的内存放在一边,空闲的放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等的距离 ...

  8. db2 语句包括不必要的列表_DB2 SQL0956C 数据库堆中没有足够的处理空间可用来处理此语句...

    问题描述:执行db2 create db 命令时,报错:DB2 SQL0956C 数据库堆中没有足够的处理空间可用来处理此语句. 数据库配置信息如下: 数据库管理器配置 节点类型           ...

  9. .net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解之一(转)

    http://www.codingthink.com/c/20121223/201212231458171.html 原文出处: http://www.c-sharpcorner.com/Upload ...

  10. 不支持给定路径的格式_剑指offer_12_矩阵中的路径

    //面试题12.矩阵中的路径 //题目:请设计一个函数,用来判断在一个矩阵中,是否存在一条包含某字符串所有字符的路径. //路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左.右.上.下移动一格.如 ...

最新文章

  1. 用C++的random_shuffle()函数打乱int数组顺序
  2. MVC中实现多按钮提交(转)
  3. :Windows下RabbitMQ安装及入门
  4. php的memcache安装,在window10下面
  5. 敢不敢做一个复杂的人
  6. CSS选择器、优先级与匹配原理
  7. MFC程序通过命令行窗口输出cout等语句
  8. 重置计算机命令行,怎么用系统命令来重置网络设置
  9. sigar获取单个进程信息
  10. 下载各省、市、县的行政区划边界数据
  11. C语言开关读程序,手把手教你学单片机的C语言程序设计(十)开关语句和循环语句.pdf...
  12. 李彦宏数字人开场!百度在元宇宙产品“希壤”中办了一场大会,还说未来10年拥堵问题将被解决~...
  13. 操作无法完成,因为其中的文件夹或文件已在另一程序中打开
  14. Unity3D 学习笔记 —— Tween对象的实现与动作管理
  15. 每日一诗词 —— 假如我不曾见过太阳
  16. matlab 图像处理 消除锯齿,Matlab图像处理,锯齿阵列图像
  17. 按键精灵脚本:采集鼠标当前所在坐标的颜色
  18. 『为金融数据打标签』「2. 元标签方法」
  19. EXCEL排名一样大的不重复
  20. android 文件名编码,安卓删除纯乱码文件名的文件

热门文章

  1. boost mysql_玩转MySQL 8.0源码编译
  2. java--小示例:-2:优化版本,多个文件的调用。
  3. python中装饰函数的使用:
  4. 加密算法在windows,linux下的检测办法[md5,sha1]
  5. 无法更新标识列 wechatid_天津塘沽企业标识标牌设计制作安装的过程
  6. 距离矢量路由算法_距离矢量路由协议是如何巧妙的利用一种消息就完成失效路由通告、以及失效路由备份路径查询及查询响应。...
  7. 常用排序算法的python实现
  8. 《python 编程从入门到实践》变量
  9. dubbo 数据传输大小配置
  10. Android更改包名