pat 团体天梯赛 L2-012. 关于堆的判断
L2-012. 关于堆的判断
将一系列给定数字顺序插入一个初始为空的小顶堆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 思路:堆排序,字符串处理可以用stringstreamAC代码:
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<vector> #include<string> #include<iomanip> #include<map> #include<stack> #include<set> #include<queue> #include<sstream> using namespace std; #define N_MAX 1000+2 #define INF 0x3f3f3f3f int n, m; vector<int>vec; bool cmp(const int &a,const int &b) {return a > b; }int main() {while (cin>>n>>m) {vec.clear();for (int i = 0; i < n; i++) { int a; cin >> a; vec.push_back(a); make_heap(vec.begin(), vec.end(), cmp); }getchar();//吸收空格while (m--) {string s; getline(cin, s);stringstream ss(s);if (s[s.size() - 1] == 't') {int a;ss >> a;if (a == vec[0])puts("T");else puts("F");}else if (s[s.size()-1]=='s') {int a, b; string tmp;ss >> a >> tmp >> b;int pos_a = find(vec.begin(), vec.end(), a) - vec.begin()+1;int pos_b = find(vec.begin(), vec.end(), b) - vec.begin()+1;if (pos_a / 2 == pos_b / 2)puts("T");else puts("F");}else {int a, b; string tmp;ss >> a >> tmp >> tmp;int pos_a = find(vec.begin(), vec.end(), a) - vec.begin() + 1;if (tmp[0] == 't') {ss >> tmp >> tmp >> b;int pos_b = find(vec.begin(), vec.end(), b) - vec.begin() + 1;if (pos_b / 2 == pos_a)puts("T");else puts("F");}else {ss >> tmp >> tmp >> b;int pos_b = find(vec.begin(), vec.end(), b) - vec.begin() + 1;if (pos_a / 2 == pos_b)puts("T");else puts("F");}}}}return 0; }
转载于:https://www.cnblogs.com/ZefengYao/p/8591882.html
pat 团体天梯赛 L2-012. 关于堆的判断相关推荐
- 团体程序设计天梯赛-L2组
团体程序设计天梯赛-L2组 -------------------------------------------------------------------------------- 题目传送门 ...
- 【团体天梯赛/PTA】7-34 福到了 (15 分)
[团体天梯赛/PTA]7-34 福到了 (15 分) "福"字倒着贴,寓意"福到".不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出.这里要处理的每 ...
- 团体程序设计天梯赛 L2 题目合集
前言 发现自己还能再参加一次天梯赛,在高兴之余,决定把在赛前将所有的天梯赛真题过一遍,希望自己可以取得理想的成绩.目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目. 本来想 L2 的题目都写个 ...
- 【L2-020 功夫传人】天梯赛L2系列详解
天梯赛L2-020 功夫传人 题目详情: 思路: 这个题目的看着就感觉需要深搜一下,不妨将样例画出来,思路就突然涌来了.很明显的一道深搜的题目: 题目刚开始输入的一行信息整体的信息:宗门人数,祖师爷功 ...
- 【L2-022 重排链表】天梯赛L2系列详细解答
天梯赛L2-022 重排链表 题目详情: 输入样例: 00100 6 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 6823 ...
- 【L2-040 哲哲打游戏】天梯赛L2题集
天梯赛L2-40 题目详情: 思路: 先来一张我自己的手写解析图: (字比较丑,不过呢没有对样例推到完整,这种东西最好自己推一遍哈) 我感觉想清楚这三个问题就很有思路啦: 1.开始地址是什么? 2.如 ...
- PTA团体天梯赛汇总
csdn逐渐成为我的错题本- 题目一: L1-006 连续因子 (20分) 一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续 ...
- 【L2-019 悄悄关注 】天梯赛L2系列详解
天梯赛L2-019 悄悄关注 题目详情: 输入样例1: 10 GAO3 Magi Zha1 Sen1 Quan FaMK LSum Eins FatM LLao 8 Magi 50 Pota 30 L ...
- 【L2-030 冰岛人】天梯赛L2系列详解
天梯赛L2-030 冰岛人 题目详情: 思路: 先搞清楚题目要求我们干什么? 直接看输出格式部分,四种情况:异性,同性,有无共同祖先,是否在名单内. 1.判断性别:如果是维京人那么通过性别后缀,否则通 ...
最新文章
- docker 限制容器日志大小
- TabControl控件用法图解
- 超链接href属性_如何使用标签上的HREF属性制作HTML超链接
- 前端学习(2260)高校案例
- Oracle BI11启动失败
- HADOOP:Current usage: 399.9 MB of 1 GB physical memory used; 2.5 GB of 2.1 GB virtual memory used.
- 7-4 sdut-求两个整数之和(II)
- Golang错误和异常处理的正确姿势
- Lambda表达式基础
- 传智播客Java引用和数值类型思考
- 答复: 关于用异常控制程序流程的看法
- 矩阵基础11- 广义逆矩阵及应用
- 英文书籍下载常用网站
- t450加固态硬盘教程_联想 thinkpad t450s 加装固态硬盘及内存图解
- win7电脑无线网变身WiFi热点,让手机、笔记本共享上网
- 【1.6万字长文】华为战略管理方法论介绍(含开发战略到执行DSTE、业务领先模型BLM、业务执行力模型BEM、组织绩效和战略解码)
- 浙江万里学院计算机期末考,期末复习看这一篇推送就够了
- 因计算机丢失d3dx9-30,Win10玩仙剑5提示d3dx9_30.dll文件丢失的解决方法
- lua脚本编辑器SciTE设置背景颜色
- 旅行照片剪辑--环青海湖篇
热门文章
- android的热修复,Android热修复原理
- 在linux中500g怎么分区,500G的硬盘,怎么分区比较合理?
- docker 搭建nginx php mysql_Docker搭建PHP/Nginx/MySQL/Composer环境
- 前端:根据类型获取正则表达式字符串​
- SQL Server数据库设置自动备份策略
- android xml事件,安卓事件
- 视觉测试_视觉设计流行测验
- 又一个基于 Esbuild 的神器!esno
- 如何制定有价值的目标
- 对程序实施精准手术!阿里安全猎户座实验室首创“自动逆向机器人”