05-树7 堆中的路径 (25分)
来源:互联网 发布:python 缺省参数 编辑:程序博客网 时间:2024/06/04 18:19
将一系列给定数字插入一个初始为空的小顶堆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
解:利用一个规律:子节点的下标index,父节点的下标j,index=j/2。
代码:
#include <iostream>#include <algorithm>using namespace std;const int maxlen = 1005;int H[maxlen];void insert(int data, int index){H[index] = data;for(int j = index; j > 0; j /= 2){if(H[j/2] > H[j]){swap(H[j/2], H[j]);}}}void print_path(int index){cout<<H[index];for(int j = index/2; j > 0; j /= 2){cout<<' '<<H[j];}}int main(){int N, M;cin>>N>>M;int data;H[0] = -10001;for(int i = 1; i <= N; i++){cin>>data;insert(data, i);}for(int i = 1; i <= M; i++){cin>>data;print_path(data);cout<<endl;}return 0;}
0 0
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 5-5 堆中的路径 (25分)
- PAT 堆中的路径 (25分)
- 质因数分解QwQ 2043洛谷oj
- Java数据类型的互相转换
- 数据压缩原理实验4_DPCM编解码
- C类型与数值存储
- 山东第八届acm大赛F题quadratic equation,山东理工oj 3898
- 05-树7 堆中的路径 (25分)
- 关于解决SSM-shiro的Spring注入问题
- R语言缺失值处理
- Tensorflow数据读取方式
- android TV开发之RecyclerView的使用以及自动加载
- Unity脚本类的继承关系
- python爬虫(10)身边的翻译专家——获取有道翻译结果
- 从C#到TypeScript
- 守护进程