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个要被

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

题目链接

将一系列给定数字顺序插入一个初始为空的小顶堆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

注意原题要求一个一个的将数字插入堆中
C++代码

#include<bits/stdc++.h>
#define x first
#define y second
#define send string::nops
using namespace std;
typedef long long ll;
const int N = 1e3 + 10;
const int M = 3 * N;
const int INF = 0x3f3f3f3f;
typedef pair<int,int> PII;
int heap[N];
int n,m;
int main(){ 
   
    string query;
    cin>>n>>m;
    int num = 0;
    for(int i = 1;i <= n;i ++){ 
   
        cin>>heap[i];
        int t = i;
        while(t / 2 > 0){ 
   
            if(heap[t] < heap[t / 2])
                swap(heap[t],heap[t / 2]);
            else break;
            t /= 2;
        }
    }
// cin.get();
    int x,y;
    scanf(" ");//清空缓存区
    for(int i = 0;i < m;i ++){ 
   
        cin>>x>>query;
        if(query == "and"){ 
   
            cin>>y;
            int pox1 = FindIndex(x),pox2 = FindIndex(y);
            if(pox1 / 2 == pox2 / 2 && pox1 != -1 && pox2 != -1)cout<<"T"<<endl;
            else cout<<"F"<<endl;
        }
        else{ 
   
            cin>>query;
            if(query == "a"){ 
   
                cin>>query>>query>>y;
                int pox1 = FindIndex(x),pox2 = FindIndex(y);
                if(pox2 == pox1 / 2 && pox1 != -1 && pox2 != -1)cout<<"T"<<endl;
                else cout<<"F"<<endl;
            }
            else{ 
   
                cin>>query;
                if(query == "root"){ 
   
                    int pox = FindIndex(x);
                    if(pox == 1)cout<<"T"<<endl;
                    else cout<<"F"<<endl;
                }
                else{ 
   
                    cin>>query>>y;
                    int pox1 = FindIndex(x),pox2 = FindIndex(y);
                    if(pox2 / 2 == pox1 && pox1 != -1 && pox2 != -1)cout<<"T"<<endl;
                    else cout<<"F"<<endl;
                }
            }
        }
        getline(cin,query);
    }
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169187.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于网络制式(例如:TD-SCDMA /GSM)

    关于网络制式(例如:TD-SCDMA /GSM)在中国,TD-SCDMA指的是中国移动的3G,WCDMA指的是中国联通的3G,CDMA2000指的是中国电信的3G,GSM是2G网络(中国联通和中国移动都有),简言之,CDMA2000是CDMA演进的3G!CDMA(CodeDivisionMultipleAccess)又称码分多址,是在无线通讯上使用的技术。在国内,是中国电信的手机网络在用的方式。三大运营商网络制式…

    2022年10月3日
    5
  • 图片管理系统–CDN源站图片管理

    这是Java开发的跨域的图片上传、图片删除解决办法;并提供了5个针对商品的图片管理功能:浏览、检查、切割、删除、上传。对于图片上传、图片删除是没有权限控制的;对于5个图片管理功能演示,使用JasigCAS进行单点登录。技术框架:SpringMVC下载连接一:图片管理系统源码下载地址:http://pan.baidu.com/s/11

    2022年4月4日
    50
  • C# ListView_winform数据库增删改查

    C# ListView_winform数据库增删改查C#winform中listview排序本文解决方案是采用下面链接中的解决方案。十分感谢这篇文章的作者bright:http://blog.163.com/shensc@126/blog/static/1312896522010614103538287/看到网上的许多解决方案(其实就是一种,只不过被转载和粘贴,所以没什么用。同时那么多的代码居然屌用没有(原谅我说脏话了)(

    2022年10月3日
    4
  • lspci命令详解无网卡信息_linux系统安装图形化界面

    lspci命令详解无网卡信息_linux系统安装图形化界面说明:lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。参数:-v使得lspci以冗余模式显示所有设备的详细信息。-vv使得lspci以过冗余模式显示更详细的信息(事实上是PCI设备能给出的所有东西)。这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照/usr/include/linux/pci.h或者P

    2025年10月16日
    5
  • c++sscanf函数_c语言字符串常用函数

    c++sscanf函数_c语言字符串常用函数在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。以下源代码是本人测试的源文件,附带讲解注释。/************************

    2025年6月11日
    5
  • java课程设计成绩管理系统_Java课程设计–学生成绩管理系统

    java课程设计成绩管理系统_Java课程设计–学生成绩管理系统一、团队名称:##团队成员林艺薇201721123032网络1712黄毓颖201721123033网络1712唐川201721123034网络1712梁才玉201721123038网络1712##任务分配#三、项目git提交记录截图#四、项目功能架构图与主要功能流程图##思维导图##成绩管理流程图#五、项目运行截图##主界面##选择用户##教师登陆界面##…

    2022年7月9日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号