PAT Path in a Heap

Path in a Heap

Insert a sequence of given numbers into an initially empty min-heap H. Then for any given index i, you are supposed to print the path from H[i] to the root.

堆的建立基础操作

非常简单 建议看看mooc何老师的视频 就明白了 这里就不再赘述了

只是我的代码不知道为何 有两个节点时间超限  希望大家能帮忙看看

 1 #include <stdio.h>
 2
 3 void heapAdjust(int a[],int data);
 4 main()
 5 {
 6     int i,*a,n,m,k,data;
 7     scanf("%d%d",&n,&m);
 8     a=malloc(n*sizeof(int));
 9     a[0]=-10001;
10     for(i=1;i<=n;i++)
11     {
12         scanf("%d",&data);
13         heapAdjust(a,data);
14     }
15
16     for(i=1;i<=m;i++)
17     {
18         scanf("%d",&k);
19         printf("%d",a[k]);
20         k=k/2;
21         while(1)
22         {
23             printf(" %d",a[k]);
24             if(k==1)
25                 break;
26             k=k/2;
27         }
28         printf("\n");
29     }
30     free(a);
31 }
32 void heapAdjust(int a[],int data)
33 {
34     static int size=0;
35     int i;
36     i=++size;
37     for(;a[i/2]>data;i=i/2)
38         a[i]=a[i/2];
39     a[i]=data;
40 }
时间: 2024-10-13 19:55:27

PAT Path in a Heap的相关文章

04-树9. Path in a Heap (25)

04-树9. Path in a Heap (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue Insert a sequence of given numbers into an initially empty min-heap H. Then for any given index i, you are supposed to print the path from H[i] to the root.

PAT 05-树6 Path in a Heap

这次的作业完全是依葫芦画瓢,参照云课堂<数据结构>(http://mooc.study.163.com/learn/ZJU-1000033001#/learn/content)中何钦铭老师课件中有关建堆及插入的内容,再加上自己写的一个矬函数(竟然传了4个参数),OK了!题设要求及代码实现如下 1 /* 2 Name: 3 Copyright: 4 Author: 5 Date: 05/04/15 19:34 6 Description: 7 Insert a sequence of given

PAT005 Path in a Heap

题目: Insert a sequence of given numbers into an initially empty min-heap H. Then for any given index i, you are supposed to print the path from H[i] to the root. Input Specification: Each input file contains one test case. For each case, the first lin

PAT 1098 Insertion or Heap Sort (25)

According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. At each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted

Path in a Heap (25)

被几道30分的题困扰好久 = = 果然自己还是太弱了 这道25分的还是比较简单 做做就做出来了 #include <iostream> #include <cstring> using namespace std; long long i; long long *A; void insert(long long a); int main() { long long n, m; cin >> n >> m; A = (long long *)malloc((n

PAT树_层序遍历叶节点、中序建树后序输出、AVL树的根、二叉树路径存在性判定、奇妙的完全二叉搜索树、最小堆路径、文件路由

<pre class="code"><span style="font-family: %value; font-size: 14px;">03-树1. List Leaves (25) Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. Input Specification: Each inpu

日志分析 第六章 安装elasticsearch

在这里,以两台es集群为例. es集群健康状况有三种状态,这里我们搭建的es集群,只要两台不同时挂掉,数据不会丢失. green 所有主要分片和复制分片都可用 yellow 所有主要分片可用,但不是所有复制分片都可用 red 不是所有的主要分片都可用 举个例子: 比如说现在集群节点es1位主节点,es2位复制分片节点,默认情况下,两台es都接收logstash传过来的日志,是负载均衡的. 如果es1宕掉,es2会被提升为主节点,只有es2接收logstash传来得日志数据,同时整个集群状态由gr

Python爬取半次元图片[一]

用到模块有requests,BeautifulSoup4,lxml(BeautifulSoup基于这个解析,据说速度会快很多),re(正则ps.只用到了一个compile函数) 介绍下思路: 创建Img文件夹,解析html标题为文件夹名称(创建在Img文件夹下),利用Firefox模块Firehug分析网页(这是需要自己动手分析,不是写代码) 接下来介绍一下使用的函数 re: re.compile("%s"%(往里面填匹配字符就行)) BeautifulSoup: BeautifulS

golang gc 优化思路以及实例分析

一个即将上线的go 写的高频服务,压测的时候发现 gc 特别高,高到10%-15% 左右了,本文记录下优化 gc 的过程和和思路.线上环境1.10. 首先,查看gc 是否有异常,我们可以使用 gctrace 跟踪实时的gc .执行下面命令可以看到gc 的实时信息. GODEBUG=gctrace=1 go run cmd/agent_bin.go 输出结果如下: gc 45 @37.801s 11%: 0.19+627+0.29 ms clock, 0.38+424/621/0+0.59 ms