PTA-堆中的路径
来源:互联网 发布:淘宝怎么加入一淘 编辑:程序博客网 时间:2024/06/05 12:41
将一系列给定数字插入一个初始为空的小顶堆H[]
。随后对任意给定的下标i
,打印从H[i]
到根结点的路径。
输入格式:
每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。
输出格式:
对输入中给出的每个下标i
,在一行中输出从H[i]
到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。
输入样例:
5 346 23 26 24 105 4 3
输出样例:
24 23 1046 23 1026 10
先把节点插到队列尾端,然后重下向上更新,如果父节点大于子节点,交换位置,然后继续更,直到不能更新结束
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <algorithm>#include <map>#include <cmath>using namespace std;int n,m,x,cnt;int a[1010];void Change(int x){while(x>1){if(a[x]<a[x/2])swap(a[x],a[x/2]);elsereturn;x = x/2;}}int main(){scanf("%d %d",&n,&m);for(int i = 1; i <= n; i++){scanf("%d",&x);a[i] = x;if(i>1)Change(i);}for(int i = 0; i < m; i++){scanf("%d",&x);while(x>=1){if(x == 1)printf("%d\n",a[1]);elseprintf("%d ",a[x]);x = x/2;}}return 0;}
0 0
- PTA-堆中的路径
- PTA数据结构 5-5 堆中的路径
- PTA习题 5-5 堆中的路径 (25分)
- PTA数据结构——堆的路径
- PTA 数据结构与算法题目集(中文)5-5 堆中的路径 (25分)
- 堆中的路径
- 堆中的路径
- 堆中的路径
- 堆中的路径
- 堆中的路径
- 堆中的路径
- 堆中的路径
- 5-5 堆中的路径
- 5-5 堆中的路径
- 5-5 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- swift 新特性 -面向对象
- Net操作Excel(终极方法NPOI)
- Java面试题目(非通用模板)
- 凑算式,蓝桥杯2016年第3题
- 亡命之徒
- PTA-堆中的路径
- JSP编码问题:pageEncoding、contentType、charset、setCharacterEncoding和setContentType
- Android常用控件之ProgressDialog
- 递归与分治
- L2-006. 树的遍历
- 产品经理做APP从头到尾的所有工作流程详解!
- 论文笔记之---Person Re-identification in the Wild
- C语言 strcpy函数实现
- Linux 硬盘读写速度测试