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. [ios-必看] iOS 下实现解压缩

    http://blog.csdn.net/lyy_whg/article/details/11971581 http://blog.sina.com.cn/s/blog_833996210100udk ...

  2. 办理渥太华大学(本科)学历认证『微信171922772』Ottawa U学位证成绩单使馆认证University of Ottawa

    办理渥太华大学(本科)学历认证『微信171922772』Ottawa U学位证成绩单使馆认证University of Ottawa QQ/微信171922772办理毕业证成绩单.真实使馆及教育部学历 ...

  3. 【BJG吐槽汇】第2期 - 我每周1-2次迟到都是因为你-->ios10!

    本期槽点嘉宾:苹果系统 ios10 小吐我记得iphone是在2008年出的,当时我还在用诺基亚N70,对iphone是十分的陌生,想必大家也是,直到iphone4的时候,黄牛成群,饥饿营销,包括出i ...

  4. Jquery datepicker 时间插件使用 js 时间相加,相减

    $(document).ready(function(){ //输入框事件 $('#probation').bind('input propertychange', function() { var ...

  5. phpopp

    <?php header("content-type:text/html;charset=utf8"); class lidepeng{ var $name; public ...

  6. c#注释

    c#的注释分为:这里不能不说一下什么是注释. 注释本身不会执行,只是说明性文字,只供程序员阅读. 注释又分为:单行注释,多行注释,文档注释. 单行注释://开始 多行注释:/*开始, */结束. 文档 ...

  7. Sublime Text3下如何快速搭建开发环境

    安装好Sublime Text3之后,简单几步就可以搭建一个好用的开发环境. sublime的设置包括自定义设置以及插件系统. 打开菜单Preferences -> Settings,编辑自定义 ...

  8. 问题记录1:The VMware Authorization Service is not running.

    问题 VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the pr ...

  9. Java 后台sql注入

    JdbcTemplate.update(sql, ArrayList.toArray()) Connection conn = null; PreparedStatement ps = null; c ...

  10. 必须掌握的Linux命令

    章节简述: 本章节讲述系统内核.Bash解释器的关系与作用,教给读者如何正确的执行Linux命令以及常见排错方法. 经验丰富的运维人员可以恰当的组合命令与参数,使Linux字符命令更加的灵活且相对减少 ...