时间限制: 10 s

空间限制: 32000 KB
题目等级 : 白银 Silver

题目描述 Description

已知一个二叉树,判断它是否为二叉堆(小根堆)

输入描述 Input Description

二叉树的节点数N和N个节点(按层输入)

输出描述 Output Description

YES或NO

样例输入 Sample Input

样例输入1

3

1 4 9

样例输入2

3

6 4 9

样例输出 Sample Output

样例输出1

YES

样例输出2

NO

数据范围及提示 Data Size & Hint

对于20%的数据  N≤20

对于50%的数据  N≤1000

对于100%的数据 N≤50000,每个节点≤10000

分类标签 Tags 点此展开

代码如下

 1 #include <cstdlib>
 2 #include <cstdio>
 3 #include <iostream>
 4
 5 using namespace std;
 6
 7 int n,tree[100001],bb,n1;
 8
 9 int pd()//是否为小根堆
10 {
11     for (int i=n1-1; i>=2; i--)
12     {
13         if (tree[i]>tree[i/2] && !bb) return 0;//当n为0时
14         if (tree[i]<tree[i/2] && bb) return 0;
15     }
16     return 1;
17 }
18
19 int main()
20 {
21     scanf("%d",&n);
22     n1=n;
23     for (int i=1; i<=n; i++)
24         scanf("%d",&tree[i]);
25     while (tree[n1]==tree[n1/2]) n1--;
26     if (tree[n1]>tree[n1/2]) bb=1;
27     if (pd()) cout<<"YES";
28     else cout<<"NO";
29     return 0;
30 }

转载于:https://www.cnblogs.com/zxqxwnngztxx/p/6652642.html

codevs 2977 二叉堆练习1x相关推荐

  1. 2977 二叉堆练习1

    2977 二叉堆练习1 时间限制: 10 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题目描述 Description 已知一个二叉树,判断它是否为二叉堆(小根堆) 输入描述 ...

  2. 2977 二叉堆练习1 codevs

    题目描述 Description 已知一个二叉树,判断它是否为二叉堆(小根堆) 输入描述 Input Description 二叉树的节点数N和N个节点(按层输入) 输出描述 Output Descr ...

  3. 2977,3110 二叉堆练习1,3——codevs

    二叉堆练习1 题目描述 Description 已知一个二叉树,判断它是否为二叉堆(小根堆) 输入描述 Input Description 二叉树的节点数N和N个节点(按层输入) 输出描述 Outpu ...

  4. 大根堆的删除c语言,二叉堆(一)之 C语言详解

    本文介绍二叉堆,二叉堆就是通常我们所说的数据结构"堆"中的一种.和以往一样,本文会先对二叉堆的理论知识进行简单介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现: ...

  5. 在A*寻路中使用二叉堆

    在A*寻路中使用二叉堆 作者:Patrick Lester(2003年4月11日更新) 译者:Panic 2005年3月28日 译者序:     这一篇文章,是"A* Pathfinding ...

  6. 0x17.基础数据结构 - 二叉堆

    目录 一.二叉堆 二.例题 0.AcWing 145. 超市 AcWing 146. 序列(POJ 2442) 三.HuffmanHuffmanHuffman树 1.AcWing 148. 合并果子 ...

  7. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  8. 排序算法之——优先队列经典实现(基于二叉堆)

    许多应用都需要处理有序的元素,但有时,我们不要求所有元素都有序,或是一定要一次就将它们排序,许多情况下,我们会收集这些元素里的最大值或最小值. 这种情况下一个合适的数据结构应该支持两种操作:插入元素. ...

  9. 线段树、二叉堆以及离散化入门

    目录 线段树 例题 题面 练习 1 2 3 4 5 小解区间操作 二叉堆 例题 思路 @ 线段树 例题 题面 时间限制: 1 Sec 内存限制: 128 MB [题意]给出N个数,两种操作:1.C x ...

最新文章

  1. Python-字符串操作方法 [转]
  2. Windows设置软件开机自启动与关闭
  3. super icon
  4. NodeJs两个简单调试技巧
  5. 本地运行flowable_在CockroachDB上运行Flowable
  6. ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
  7. [react] render方法的原理你有了解吗?它返回的数据类型是什么?
  8. 爬虫爬评书吧_python scrapy+Mongodb爬取蜻蜓FM,酷我及懒人听书
  9. Parcelbale接口
  10. 2021级研究生人工智能高级语言程序设计考试说明
  11. Python断言及常用断言函数总结
  12. java面试,经常遇到面试官的问题
  13. Warning: Attempt to present ... on … which is already presenting null
  14. (VQA)LRTA: A Transparent Neural-Symbolic Reasoning Framework with Modular Supervision for Visual Que
  15. 一篇关于营销的功能需求分析
  16. 使用学信网认证,免费获取JetBrains学习产品
  17. Interview QA-COBOL COBOL II
  18. 南京邮电大学java实验报告_南京邮电大学java第二次实验报告
  19. 再来30个!中国联通5G应用创新案例
  20. 通过uvm_printer的print_generic进行扩展打印

热门文章

  1. 口袋西游150服务器维护,口袋西游版本更新披露 幽冥界场景首曝
  2. 神一样的存在,河北衡水中学2019高考再次碾压所有中学
  3. 衡水中学计算机老师,河北衡水中学|高三榜样教师风采展
  4. 关于UCOS任务卡死的原因分析
  5. JavaScript中逻辑运算符(、||、!)的优先级和运算顺序
  6. IPD+CMMI+Scrum一体化研发管理解决方案之CMMI
  7. 项目管理十大流程,让你轻松管理项目
  8. Realme GT 大师探索版 ROOT 解锁BL教程
  9. python 一键爬取百度图片
  10. 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】