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

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

  • x is the rootx是根结点;
  • x and y are siblingsxy是兄弟结点;
  • x is the parent of yxy的父结点;
  • x is a child of yxy的一个子结点。

输入格式:

每组测试第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
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int a[N];
int n,m;
int find(int x){for(int i=1;i<=n;i++)if(a[i]==x) return i;return 0;
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];int k=i;while(k>1&&a[k]<a[k/2]){swap(a[k],a[k/2]);k/=2;}}while(m--){int x; cin>>x;string s; cin>>s;if(s=="is"){string ss; cin>>ss;if(ss=="the"){string sss; cin>>sss;if(sss=="root"){if(a[1]==x) cout<<"T"<<endl;else cout<<"F"<<endl;}else{string s1; int xx;cin>>s1>>xx;if(find(x)==find(xx)/2)cout<<"T"<<endl;else cout<<"F"<<endl;}}else if(ss=="a"){string s1,s2;int xx; cin>>s1>>s2>>xx;if(find(x)/2==find(xx)) cout<<"T"<<endl;else cout<<"F"<<endl;}}else if(s=="and"){int xx; string s1,s2;cin>>xx>>s1>>s2;if(find(x)/2==find(xx)/2) cout<<"T"<<endl;else cout<<"F"<<endl;}}return 0;
}

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

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

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

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

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

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

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

  4. 关于堆的判断 (25 分)

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

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

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

  6. 【两种解法】基础实验4-2.2 列出叶结点 (25 分)

    立志用最少的代码做最高效的表达 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 N− ...

  7. 【视频讲解】基础实验4-2.1 树的同构 (25 分)

    立志用最少的代码做最高效的表达 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把其中一棵树 ...

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

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

  9. 数据结构PTA习题:基础实验4-2.7 修理牧场 (25分)

    基础实验4-2.7 修理牧场 (25分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...

最新文章

  1. android游戏课程设计,Miuka「游戏化课程设计」图卡18|好课程如何讲故事的
  2. Proguard returned with error code 1. See console
  3. 稀疏表示字典的显示(MATLAB实现代码)
  4. Unable to open debugger port (127.0.0.1:4184): java.net.SocketException socket closed
  5. mysql window怎么安装补丁_window下mysql安装步骤
  6. 参加双车项目的一些感触
  7. dijkstra算法学习
  8. 博弈问题及SG函数(真的很经典)
  9. 区块链技术指南 第一章 区块链和比特币的初体验
  10. wxpython滑动面板_wxpython实现按钮切换界面的方法
  11. 如何分析风控核心报表,指标背后代表怎样的逻辑
  12. JavaScriptjQuery.检测相等和存在
  13. Fiddler模拟请求报文
  14. Oracle 12c多租户特性详解:PDB 的出与入 InAndOut
  15. 正则对字符串中手机号加密
  16. 安装完毕后VS2012(2013)中找不到ADO.NET Entity Data Model模板或 sql server database project模板
  17. 计算机软件 题目,计算机软件论文题目
  18. Linux - Centos7 查询系统安装时间以及硬盘序列号命令
  19. 怎么查看以前的地图(卫星地图历史影像)?
  20. 设计模式之中介者模式

热门文章

  1. ESXI忘记密码怎么办
  2. vim 删除一行_Vim 日常命令
  3. 【jmeter】Include Controller控件Test Fragment的使用
  4. MySQL 修改字段
  5. [ActionScript 3.0] 获取TextFiled字符边框
  6. ELF格式解析库之基本数据类型
  7. 经纬度距离,修改系统时间,读取ini文件
  8. 【转】对路径**的访问被拒绝
  9. NET中各种数据库连接大全
  10. Vue项目开发中的点滴积累系列文章