天梯L2-012

2024-04-25 20:32
文章标签 l2 天梯 012

本文主要是介绍天梯L2-012,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于堆的判断   

将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:

  • x is the rootx是根结点;
  • x and y are siblingsxy是兄弟结点;
  • x is the parent of yxy的父结点;
  • x is a child of yxy的一个子结点。

输入格式:

每组测试第1行包含2个正整数N\le 1000)和M\le 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[-10000, 10000][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

 
 
 
 
我去,,被题意搞死了,,原题中第一句话:将一系列给定数字顺序插入一个初始为空的小顶堆H[]。,,这个要求每次一个数往里插,,这样的话,先全部输入再建堆
就不行了(建堆过程中插数和先建好再调整出来的树是不一样的(虽然都是小顶堆)
 
顺便学习了一下c和c++中字符串和数值的转换(虽然也没派上用场),,附一篇博客,,自我感觉写的蛮好:http://www.cnblogs.com/hujunzheng/p/5042068.html
 
 
本题代码,,写的有点乱,orz,估计仅限本人能看懂尴尬。。。
 
#include <iostream>
#include <cstdio>
#include <cstring>using namespace std;int heap[1005];
char str[80];
int n,m;void siftup(int i)
{int tmp,flag=0;while(i!=1&&!flag){if(heap[i]<heap[i/2])swap(heap[i],heap[i/2]);elseflag=1;i/=2;}
}
/*
void siftdown(int i)
{int tmp,flag=0;while(i*2<=n&&!flag){if(heap[i]>heap[i*2])tmp=i*2;elsetmp=i;if(i*2+1<=n)//右节点单独判断{if(heap[tmp]>heap[i*2+1])tmp=i*2+1;}if(tmp!=i){swap(heap[tmp],heap[i]);i=tmp;}elseflag=1;}
}
*/
/*
void creat()
{int i;for(i=n/2; i>=1; i--)siftdown(i);
}
*/
/*
void creat2()
{int i;for(i=1;i<=n;i++){heap[i]=a[i];siftup(i);}
}
*/
int exchange()
{int i,sum=0;int flag=0;for(i=0; str[i]; i++){if(str[i]=='-')//注意负数flag=1;if(str[i]>='0'&&str[i]<='9'){while(str[i]>='0'&&str[i]<='9'){sum*=10;sum+=str[i]-'0';i++;}break;}}if(flag)sum=-sum;return sum;
}int location(int x)
{int i,tmp;for(i=1; i<=n; i++)if(heap[i]==x){tmp=i;break;}return tmp;
}int main()
{int i,flag,x,y;scanf("%d%d",&n,&m);for(i=1; i<=n; i++){scanf("%d",&heap[i]);siftup(i);}//creat();while(m--){flag=0;scanf("%d",&x);getchar();gets(str);if(str[3]==' '){y=exchange();int tmp=location(x);if(tmp&1){if(heap[tmp-1]==y)flag=1;elseflag=0;}else{if(heap[tmp+1]==y)flag=1;elseflag=0;}}else if(str[3]=='a'){y=exchange();int tmp=location(x);if(heap[tmp/2]==y)flag=1;elseflag=0;}else if(str[3]=='t'&&str[7]=='r'){if(heap[1]==x)flag=1;elseflag=0;}else if(str[3]=='t'&&str[7]=='p'){y=exchange();int tmp=location(y);if(heap[tmp/2]==x)flag=1;elseflag=0;}if(flag)printf("T\n");elseprintf("F\n");}return 0;
}


这篇关于天梯L2-012的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935716

相关文章

012.Oracle-索引

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

【机器学习 sklearn】模型正则化L1-Lasso,L2-Ridge

#coding:utf-8from __future__ import divisionimport sysreload(sys)sys.setdefaultencoding('utf-8')import timestart_time = time.time()import pandas as pd# 输入训练样本的特征以及目标值,分别存储在变量X_train与y_train之中。

【Python机器学习】核心数、进程、线程、超线程、L1、L2、L3级缓存

如何知道自己电脑的CPU是几核的,打开任务管理器(同时按下:Esc键、SHIFT键、CTRL键) 然后,点击任务管理器左上角的性能选项,观察右下角中的内核:后面的数字,就是你CPU的核心数,下图中我的是16个核心的。 需要注意的是,下面的逻辑处理器:32 表示支持 32 线程(即超线程技术) 图中的进程:和线程:后面的数字代表什么 在你上传的图片中,“进程:180” 和 “线程:3251”

ASTER L2 表面反射率 SWIR 和 ASTER L2 表面反射率 VNIR V003

ASTER L2 Surface Reflectance SWIR and ASTER L2 Surface Reflectance VNIR V003 ASTER L2 表面反射率 SWIR 和 ASTER L2 表面反射率 VNIR V003 简介 ASTER 表面反射率 VNIR 和 SWIR (AST_07) 数据产品 (https://lpdaac.usgs.gov/documen

显卡天梯图(2024年9月版),游戏性能/生产力性能榜单

​原文地址(高清无水印原图/持续更新/含榜单出处链接): >>> 2024年9月显卡天梯图 <<< 2024年9月4日更新日志:更新所有显卡天梯图至9月/最新数据;移除Technical显卡榜单;新增OpenCL显卡性能榜单(含专业卡、计算卡、车机等)。 2024年8月2日更新日志:更新并拓展3DMark显卡榜单长度至150位;更新并拓展Technical显卡榜单至139位;

NASA:ASTER L2 表面辐射率(E(辐射率)和 T(地表温度)) V003数据集

ASTER L2 Surface Emissivity V003 ASTER L2 表面辐射率 V003 简介 ASTER L2 地表发射率是一种按需生成的产品((https://lpdaac.usgs.gov/documents/996/ASTER_Earthdata_Search_Order_Instructions.pdf)),利用 8 至 12 µm 光谱范围内的五个热红外(TIR)

【Arm Cortex-X925】 -【第九章】-L2 内存系统

9. L2 内存系统 Cortex®-X925 核心的 L2 内存系统通过 CPU 桥接器将核心与 DynamIQ™ Shared Unit-120 连接。它包括私有的 L2 缓存。 L2 缓存是统一的,并且对集群中的每个 Cortex®-X925 核心都是私有的。 以下表格显示了 L2 内存系统的特点。 9.1 L2 缓存 集成的 L2 缓存处理来自指令和数据侧的指令和数据请求,以及

第L2周:机器学习-线性回归

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标: 学习简单线性回归模型和多元线性回归模型通过代码实现:通过鸢尾花花瓣长度预测花瓣宽度 具体实现: (一)环境: 语言环境:Python 3.10 编 译 器: PyCharm 框 架:scikit-learn (二)具体步骤: 造个数据集,内容格式如下: 导入库 import pandas as p

AI预测体彩排3采取888=3策略+和值012路或胆码测试9月2日升级新模型预测第70弹

经过近70期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,已到达90%的命中率,这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了,大部分菜友还是走的正常渠道,因此,得想办法进行缩水,尽可能少的缩少注数。         当然了,经过近70期的观察和内部测试,发现了如果不考虑8码定位,而是重点把大底放在9码定位上

【安当产品应用案例100集】012-明御堡垒机通过RADIUS进行OTP认证登录的实施指南

概述 随着网络安全威胁的不断增加,企业对访问控制的需求日益增长。本文档旨在介绍如何配置明御堡垒机使用安当ASP认证服务的RADIUS服务器进行基于一次性密码(One-Time Password, OTP)的身份验证。OTP 身份验证是一种增强安全性的方式,可确保只有授权用户才能访问系统资源。 客户痛点 1. 内部攻击风险: 痛点: 员工误操作或内部人员滥用权限可能导致数据泄露或系统破坏