L2-012. 关于堆的判断

题目链接:https://www.patest.cn/contests/gplt/L2-012

终于ac了,简直要哭。题目还是很简单的,不过很多坑:

1.寻找x下标时,有可能返回0,即x是根结点;

2.字符串中字符的位置有可能会因串中的数字长度大小改变而改变(QAQ找了一个小时才发现是在这里);

3.gets(函数)会读取前一个分隔符(是我基础不好╮(╯▽╰)╭).

代码如下:

#include<cstdio>
#include<iostream>
using namespace std;
int a[];
int location(int key){
int k=;
while(a[k]!=key)k++;
return k;
}
int transint(char s[]){
if(s[]=='-'){
int temp=;
for(int i=;s[i]!=' '&&s[i]!='\0';i++)
temp=temp*+s[i]-'';
return -temp;
}else{
int temp=;
for(int i=;s[i]!=' '&&s[i]!='\0';i++)
temp=temp*+s[i]-'';
return temp;
}
}
int main(void){
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%d",a+i);
int k=i;
while(k&&a[k]<a[(k-)/]){
swap(a[k],a[(k-)/]);
k=(k-)/;
}
}
while(m--){
bool flag;
char s[];
int x;
scanf("%d",&x);
gets(s);//由于gets会读取x后的分隔符,所以字符串s实际上是从' '开始的
//一开始用s[8]区分,发现第二种查询会因数字长度改变而改变
if(s[]=='t'&&s[]=='r'){//第一种查询
if(a[]==x)flag=;
else flag=;
}else if(s[]==' '){//第二种查询
int y=transint(&s[]);
int t=location(x);
if(t){
if(t&){
if(a[t+]==y)flag=;
else flag=;
}else{
if(a[t-]==y)flag=;
else flag=;
}
}else flag=;
}else if(s[]=='t'&&s[]=='p'){//第三种查询
int y=transint(&s[]);
int t=location(y);
if(t&&a[(t-)/]==x)flag=;
else flag=;
}else if(s[]=='a'){//第四种查询
int y=transint(&s[]);
int t=location(x);
if(t&&a[(t-)/]==y)flag=;
else flag=;
}
if(flag)printf("T\n");
else printf("F\n");
}
return ;
}

L2-012. 关于堆的判断的更多相关文章

  1. codevs 2879 堆的判断

    codevs 2879 堆的判断 http://codevs.cn/problem/2879/ 题目描述 Description 堆是一种常用的数据结构.二叉堆是一个特殊的二叉树,他的父亲节点比两个儿 ...

  2. ->code vs 2879 堆的判断(堆的学习一)

    2879 堆的判断  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold   题目描述 Description 堆是一种常用的数据结构.二叉堆是一个特殊的二叉树,他的父 ...

  3. 堆的判断(codevs 2879)

    2879 堆的判断  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 堆是一种常用的数据结构.二叉堆 ...

  4. pat 团体天梯赛 L2-012. 关于堆的判断

    L2-012. 关于堆的判断 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 将一系列给定数字顺序插入一个初始为空的小顶堆H[] ...

  5. L2-012. 关于堆的判断(STL中heap)

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

  6. 【小顶堆的插入构造/遍历】PatL2-012. 关于堆的判断

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

  7. 【数组模拟-小顶堆的插入构造/遍历】PAT-L2-012.-关于堆的判断--数组模拟

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

  8. (PAT)L2-012 关于堆的判断 (最小堆)

    题目链接:https://www.patest.cn/contests/gplt/L2-012 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “ ...

  9. PTA L2-4 关于堆的判断

    先上题面 链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805064676261888 首先,题目描述的很清楚,这是 ...

随机推荐

  1. CodeForces 415D Mashmokh and ACM

    $dp$. 记$dp[i][j]$表示已经放了$i$个数字,并且第$i$个数字放了$j$的方案数.那么$dp[i][j] = \sum\limits_{k|j}^{}  {dp[i - 1][k]}$ ...

  2. 消息推送之androidpn部署

    androidpn客户端的部署在eclipse上,要记住两点: 1.直接导入的项目是上个世纪的lib这个文件夹,要改为libs.否则会报错找不到云云类. 2.如果在虚拟器上测试,要将res/raw/a ...

  3. 启用div作为编辑器 添加contentEditalbe属性

    1.自从HTML5中新引入了contentEditalbe属性以后,div就与textarea一样,可以作为最常用的编辑器使用. 1.启用div作为编辑器 让div进入编辑状态很简单,只需要: 复制代 ...

  4. python简易爬虫实现

    目的:爬取昵称 目标网站:糗事百科 依赖的库文件:request.sys.beautifulSoup4.imp.io Python使用版本:3.4 说明:参考http://cn.python-requ ...

  5. 上传代码到GitHub时,遇到错误:fatal,The Requested URL return error 403

    解决: from:pushing-to-git-returning-error-code-403-fatal-http-request-failed

  6. iOS NSNotificationCenter 移除通知带来的crash

    Where to remove observer for NSNotification? 在dealloc方法中移除通知观察者带来crash NSNotificationCenter中的通知消息已经发 ...

  7. 仿QQ空间视差效果,ListView.setHeader( )

    根据listview的手指移动事件,动态设置listview上面的图片的宽高,并在手指放开的时候 实现图片的动画(随时间变化的动画值) ValueAnimator.ofInt ( ) import a ...

  8. Jstatd方式远程监控Linux下 JVM运行情况

    前言 最近一个项目部署在服务器上运行时出现了问题,经过排查发现是java内存溢出的问题,所以为了实时监控服务器java内存的情况,需要远程查看服务器上JVM内存的一些情况.另外服务器系统是CentOS ...

  9. HDU 1269 迷宫城堡(DFS)

    迷宫城堡 Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的 ...

  10. Lintcode解题报告

    1. Num.196 寻找缺失的数 给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数. 注意事项 可以改变序列中数的位置. 您在真实的面试中是否遇到过这个题 ...