7-42 关于堆的判断 (25 分)
7-42 关于堆的判断 (25 分)
将一系列给定数字顺序插入一个初始为空的小顶堆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
#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 分)相关推荐
- 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整
problem L2-012 关于堆的判断 (25分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: ...
- 7-1 关于堆的判断 (25 分)
大一下半期数据结构 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are ...
- 【解析】基础实验4-2.5 关于堆的判断 (25 分)
立志用最少的代码做最高效的表达 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are ...
- 关于堆的判断 (25 分)
题目: 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are siblings:x和y ...
- L2-012 关于堆的判断 (25 分)
写在前面的废话 今天把追了两个星期的小说看完了-感觉很是感慨啊, 在这里纪念一下: 我欲乘风向北行,雪落轩辕大如席. 我欲借船向东游,绰约仙子迎风立. 我欲踏云千万里,庙堂龙吟奈我何? 昆仑之巅沐日光 ...
- 【两种解法】基础实验4-2.2 列出叶结点 (25 分)
立志用最少的代码做最高效的表达 对于给定的二叉树,本题要求你按从上到下.从左到右的顺序输出其所有叶节点. 输入格式: 首先第一行给出一个正整数 N(≤10),为树中结点总数.树中的结点从 0 到 N− ...
- 【视频讲解】基础实验4-2.1 树的同构 (25 分)
立志用最少的代码做最高效的表达 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把其中一棵树 ...
- 7-28 搜索树判断 (25 分)(思路加详解) just easy!
一:题目 对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值.如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树. 现在我们给出一个 ...
- 数据结构PTA习题:基础实验4-2.7 修理牧场 (25分)
基础实验4-2.7 修理牧场 (25分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...
最新文章
- android游戏课程设计,Miuka「游戏化课程设计」图卡18|好课程如何讲故事的
- Proguard returned with error code 1. See console
- 稀疏表示字典的显示(MATLAB实现代码)
- Unable to open debugger port (127.0.0.1:4184): java.net.SocketException socket closed
- mysql window怎么安装补丁_window下mysql安装步骤
- 参加双车项目的一些感触
- dijkstra算法学习
- 博弈问题及SG函数(真的很经典)
- 区块链技术指南 第一章 区块链和比特币的初体验
- wxpython滑动面板_wxpython实现按钮切换界面的方法
- 如何分析风控核心报表,指标背后代表怎样的逻辑
- JavaScriptjQuery.检测相等和存在
- Fiddler模拟请求报文
- Oracle 12c多租户特性详解:PDB 的出与入 InAndOut
- 正则对字符串中手机号加密
- 安装完毕后VS2012(2013)中找不到ADO.NET Entity Data Model模板或 sql server database project模板
- 计算机软件 题目,计算机软件论文题目
- Linux - Centos7 查询系统安装时间以及硬盘序列号命令
- 怎么查看以前的地图(卫星地图历史影像)?
- 设计模式之中介者模式