题目:

将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:

x is the root:x是根结点;
x and y are siblings:x和y是兄弟结点;
x is the parent of y:x是y的父结点;
x is a child of y:x是y的一个子结点。

输入格式:

每组测试第1行包含2个正整数N(≤ 1000)和M(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的N个要被插入一个初始为空的小顶堆的整数。之后M行,每行给出一个命题。题目保证命题中的结点键值都是存在的。

输出格式:

对输入的每个命题,如果其为真,则在一行中输出T,否则输出F。

输入样例:

5 4
46 23 26 24 10
24 is the root
26 and 23 are siblings
46 is the parent of 23
23 is a child of 10

输出样例:

F
T
F
T

分析:

STL中vector建立最大堆和最小堆相关知识

AC代码:

#include<stdio.h>
#include<string.h>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
vector<int>ve;
int Find(int x){return find(ve.begin()+1,ve.end(),x)-ve.begin();
}
int main(){ve.push_back(0);string s;int a,n,m;cin>>n>>m;for(int i=0;i<n;i++){cin>>a;ve.push_back(a);push_heap(ve.begin()+1,ve.end(),greater<int>());}while(m--){int a,b;cin>>a>>s;if(s=="and"){cin>>b>>s>>s;a = Find(a);b = Find(b);if(a/2 == b/2) printf("T\n");//兄弟结点else printf("F\n");}else{cin>>s>>s;if(s=="root"){if(ve[1] == a) printf("T\n");//如果是根结点else printf("F\n");}else if(s=="parent"){cin>>s>>b;a = Find(a);b = Find(b);if(a == b/2) printf("T\n");//a是b的父亲结点else printf("F\n");}else{cin>>s>>b;a = Find(a);b = Find(b);if(a/2 == b) printf("T\n");//a是b的儿子结点else printf("F\n");}}}return 0;
}

关于堆的判断 (25 分)相关推荐

  1. 7-42 关于堆的判断 (25 分)

    7-42 关于堆的判断 (25 分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y a ...

  2. 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整

    problem L2-012 关于堆的判断 (25分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: ...

  3. 7-1 关于堆的判断 (25 分)

    大一下半期数据结构 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are ...

  4. 【解析】基础实验4-2.5 关于堆的判断 (25 分)

    立志用最少的代码做最高效的表达 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are ...

  5. L2-012 关于堆的判断 (25 分)

    写在前面的废话 今天把追了两个星期的小说看完了-感觉很是感慨啊, 在这里纪念一下: 我欲乘风向北行,雪落轩辕大如席. 我欲借船向东游,绰约仙子迎风立. 我欲踏云千万里,庙堂龙吟奈我何? 昆仑之巅沐日光 ...

  6. 7-28 搜索树判断 (25 分)(思路加详解) just easy!

    一:题目 对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值.如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树. 现在我们给出一个 ...

  7. 堆中的路径 (25 分)

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

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

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

  9. python 判断该地址 文件创建时间2020年10月14日14时25分32秒 文件最后一次访问时间 文件最后一次修改时间

    #1.判断该地址 #1.文件名 #2.文件路径 #3.文件扩展名 #4.文件创建时间2020年10月14日14时25分32秒 #5.文件最后一次访问时间 #6.文件最后一次修改时间 #7.文件的大小( ...

最新文章

  1. PYTHON自动化Day12-unittest自动注册登录
  2. 常考数据结构与算法:进制转换
  3. 存clob为空的值_给Oracle数据库中CLOB字段插入空值
  4. boost::filesystem模块演示错误报告的工作原理的测试程序
  5. 怀化学院计算机科学专业排名,2019怀化学院专业排名
  6. 鸿蒙系统 闹钟,华为鸿蒙2.0操作系统正式版
  7. 英特尔一口气发布了三款处理器、两款存储、一款以太网适配器
  8. HTTP1.1与HTTP1.0
  9. pytorch代码阅读、代码学习
  10. 公专网集群对讲系统在城市执法过程中的应用
  11. 微信小程序授权登录详细解析
  12. 看美剧《疑犯追踪》,学地道美语 Learn idiomatic American English by watching Tv series Person of Interest
  13. msfvenom生成muma
  14. 安装RSF自动化环境
  15. 一个字段,就可以判断是否关注公众号,你信吗
  16. oracle 表名 添加注释
  17. 资本资产定价模型(CAPM)与套利定价理论(API)比较
  18. Windows10数据线连接坚果手机SmartisanTNT
  19. threejs加载GLTFLoader模型或者加载不出来
  20. 16进制转2进制代码

热门文章

  1. Android之解决多语言适配部分TextView内容左对齐和内容一行不排满就到第二行问题
  2. linux网络编程之一般应用采用的协议和不同套接字的地址结构以及用户进程和内核通过哪些函数传递套接字的地址结构
  3. Tree前序反序列化
  4. 栈和队列之用一个栈实现另一个栈的排序
  5. [python opencv 计算机视觉零基础到实战] 十、图片效果毛玻璃
  6. c语言入门数组,C语言入门之数组(2)
  7. 全球顶级大学,在中国录取率却不足0.5%,答案一针见血!
  8. 不爱读书怎么办?用这个新奇的方法,熟知137亿年来的地球通史
  9. php判断是否是关联数组,php 关联数组判断是否为空
  10. html站点如何命名,html页面的CSS、DIV命名规则