博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pat 团体天梯赛 L2-012. 关于堆的判断
阅读量:5316 次
发布时间:2019-06-14

本文共 2043 字,大约阅读时间需要 6 分钟。

L2-012. 关于堆的判断

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

将一系列给定数字顺序插入一个初始为空的小顶堆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 446 23 26 24 1024 is the root26 and 23 are siblings46 is the parent of 2323 is a child of 10
输出样例:
FTFT 思路:堆排序,字符串处理可以用stringstream AC代码:
#define _CRT_SECURE_NO_DEPRECATE#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define N_MAX 1000+2#define INF 0x3f3f3f3fint n, m;vector
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

你可能感兴趣的文章
GitHub项目管理维护实用教程
查看>>
【POJ】3415 Common Substrings
查看>>
JavaScript执行环境 + 变量对象 + 作用域链 + 闭包
查看>>
线程的语法 (event,重要)
查看>>
【转】学会这13个原则写UI界面文案,用户才能秒懂
查看>>
【转】Linux中断处理学习笔记
查看>>
【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)
查看>>
点击User Profile Service Application 报错
查看>>
VS2010插件之NuGet
查看>>
1.单机部署hadoop测试环境
查看>>
[设计模式]桥接模式
查看>>
利用html5看雪花飘落的效果
查看>>
IOS实用功能之截图(来自相册和拍照)
查看>>
linux去掉某一字符开头的行
查看>>
# javascript 总结
查看>>
字符串(AC自动机):HDU 5129 Yong Zheng's Death
查看>>
最详细的排序解析,理解七大排序
查看>>
mybatis模糊查询不同写法
查看>>
Linux移植之内核启动过程引导阶段分析
查看>>
辉光UIView的category
查看>>