堆排序 GPLT L2-012 关于堆的判断
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805064676261888
分析:这题看起来非常唬人,其实不难。。。。。四个judge基本没啥差,就是输入稍微注意一下,只要知道怎么构造一个堆是非常水的一道题目
堆的话就是二叉树,儿子的值一定不小于父亲的值,左子树是父亲节点的2倍,右子树是父亲节点2倍+1
用的是向上浮动的方法构造,听大牛说“必须注意,因为题目要求按照插入的顺序建立,所以是边插入边调整的,必须用向上调整,每次输入一个数之后就将它向上调整。(两者建立出来的二叉树不同)而不能采用先转换为二叉树的方式再向下调整。”
不过具体原因我也不知道。。。。。
上代码吧
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf=<<;
const double pi=acos(-);
const int mod=;
const int maxn=;
const int maxm=;
int a[maxn];int n,m;
void upadjust(int i){
if(i==)return ;
while(i!=){
if(a[i]<a[i/]){
swap(a[i],a[i/]);
i/=;
}else{
break;
}
}
}
void judge1(int x){
if(a[]==x)printf("T\n");
else printf("F\n");
}
void judge2(int x,int y){
int idxa,idxb;
for(int i=;i<=n;i++){
if(a[i]==x)idxa=i;
if(a[i]==y)idxb=i;
}
if(idxa>idxb) swap(idxa,idxb);//保证左边的是a,接下来好判断
if(idxa%==&&idxb-idxa==)printf("T\n");
else printf("F\n");
}
void judge3(int x,int y){
int idxa,idxb;
for(int i=;i<=n;i++){
if(a[i]==x)idxa=i;
if(a[i]==y)idxb=i;
}
if(idxa*==idxb||idxa*==idxb-)printf("T\n");
else printf("F\n");
}
void judge4(int x,int y){
int idxa,idxb;
for(int i=;i<=n;i++){
if(a[i]==x)idxa=i;
if(a[i]==y)idxb=i;
}
if(idxb*==idxa||idxb*==idxa-)printf("T\n");
else printf("F\n");
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
upadjust(i);
}
char c[];
int x,y;
for(int i=;i<m;i++){
scanf("%d%s",&x,c);
if(strcmp(c,"and")==){
scanf("%d%s%s",&y,c,c);
judge2(x,y);
}
else{
scanf("%s",c);
if(strcmp(c,"a")==){
scanf("%s%s%d",c,c,&y);
judge4(x,y);
}
else {
scanf("%s",c);
if(strcmp(c,"root")==){
judge1(x);
}
else{
scanf("%s%d",c,&y);
judge3(x,y);
}
}
}
}
return ;
}
堆排序 GPLT L2-012 关于堆的判断的更多相关文章
- PAT 天梯赛 L2-012. 关于堆的判断 【Heap】【STL】
题目链接 https://www.patest.cn/contests/gplt/L2-012 思路 使用 STL 里面有关 Heap 的函数 std::make_heap将[start, end)范 ...
- L2-012. 关于堆的判断
L2-012. 关于堆的判断 题目链接:https://www.patest.cn/contests/gplt/L2-012 终于ac了,简直要哭.题目还是很简单的,不过很多坑: 1.寻找x下标时,有 ...
- pat 团体天梯赛 L2-012. 关于堆的判断
L2-012. 关于堆的判断 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 将一系列给定数字顺序插入一个初始为空的小顶堆H[] ...
- codevs 2879 堆的判断
codevs 2879 堆的判断 http://codevs.cn/problem/2879/ 题目描述 Description 堆是一种常用的数据结构.二叉堆是一个特殊的二叉树,他的父亲节点比两个儿 ...
- ->code vs 2879 堆的判断(堆的学习一)
2879 堆的判断 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 堆是一种常用的数据结构.二叉堆是一个特殊的二叉树,他的父 ...
- 堆的判断(codevs 2879)
2879 堆的判断 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 堆是一种常用的数据结构.二叉堆 ...
- L2-012. 关于堆的判断(STL中heap)
L2-012. 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y ...
- 【小顶堆的插入构造/遍历】PatL2-012. 关于堆的判断
L2-012. 关于堆的判断 时间限制 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x a ...
- 【数组模拟-小顶堆的插入构造/遍历】PAT-L2-012.-关于堆的判断--数组模拟
L2-012. 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y ar ...
随机推荐
- 【Java----创建多级文件夹】
File类中的mkdir()和mkdirs(): mkdir():只能创建一层目录. mkdirs():可以创建多层目录 代码:path可以是带文件名称的全路径 //路径 String path = ...
- BZOJ 3707 圈地
闲扯 BZOJ权限题,没有权限,哭了 然后DBZ不知道怎么回事,\(O(n^3)\)直接压过去了... 备忘 叉积的计算公式\(x_1y_2\) 思路 n^3 暴力枚举显然 n^2 正解的思路有点神, ...
- 题解——CF Manthan, Codefest 18 (rated, Div. 1 + Div. 2) T4(模拟)
随便模拟下就过了qwq 然后忘了特判WA了QwQ #include <cstdio> #include <algorithm> #include <cstring> ...
- 题解——loj6279 数列分块入门3 (分块)
用set维护有序序列 或许sort也可以,但这题的前驱定义是严格小于 所以要去重 然后就是记得自己打的加法tag在query的时候一定要算上 话说这题数据有点fake啊忘了查询算上自己的标记了还有70 ...
- Sublime text 3 汉化教程
首先,需要安装Package Control 启动并进入sublime主界面,打开Sublime Text的控制台(快捷键 ctrl + ~) 然后我们到Package Control官方网站,复制s ...
- C# widget
Invoke(Delegate)的用法: //例如,要实时update窗体.如果在另一个线程中update,那么可以直接update(可以不在新线程中):也可以在Delegate中给出upate,然后 ...
- android studio 的基本使用和建立一个小项目
https://github.com/allenxieyusheng/Android-Studio
- 前端如何应对笔试算法题?(用node编程)
用nodeJs写算法题 咱们前端使用算法的地方不多,但是为了校招笔试,不得不针对算法题去练习呀! 好不容易下定决心 攻克算法题.发现js并不能像c语言一样自建输入输出流.只能回去学习c语言了吗?其实不 ...
- poj 1744 tree 树分治
Tree Time Limit: 1000MS Memory Limit: 30000K Description Give a tree with n vertices,each ed ...
- mac 下安装ES 与 Head插件 以及安装Kibana
一.安装Elasticsearch 在Mac上可以使用brew快速安装Elasticsearch brew install elasticsearch 安装完成后可使用elasticsearch -- ...