堆【模板】小根堆堆【模板】大根堆(回)
目录
堆【模板】小根堆
题目描述1
输入1
输出1
样例输入 1
样例输出 1
提示1
代码1
堆【模板】大根堆
题目描述2
输入
输出
样例输入2
样例输出2
提示2
代码2
堆【模板】小根堆
题目描述1
初始小根堆为空,我们需要支持以下3种操作:
操作1: 1 x 表示将x插入到堆中(1e-6<=x<=1e6)
操作2: 2 输出该小根堆内的最小数,若小根堆为空,则输出empty
操作3: 3 删除该小根堆内的最小数,若小根堆为空,则输出err
输入1
第一行包含一个整数N,表示操作的个数
接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:
操作1: 1 x
操作2: 2
操作3: 3
输出1
包含若干行,根据题意输出。
样例输入 1
12
1 5
2
3
3
2
1 -5
1 7
1 -9
2
2
1 -17
2
样例输出 1
5
err
empty
-9
-9
-17
提示1
数据规模:
对于30%的数据:N<=20
对于70%的数据:N<=10000
对于100%的数据:N<=10^6
样例说明:
12
1 5
2 输出堆顶5
3 删除5
3 删堆顶时堆为空,输出err
2 取堆顶时堆为空,输出empty
1 -5
1 7
1 -9
2 输出堆顶-9
2 输出堆顶-9
1 -17
2 输出堆顶-17
代码1
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,i,fl,x,t,a[1000100];
void up(int t){
int fa;
while(t!=1){
fa=t/2;
if(a[fa]>a[t])
swap(a[t],a[fa]),t=fa;
else break;
}
}
void down(int tt){
int son;
while(tt*2<=t){
son=tt*2;
if(son+1<=t&&a[son+1]<a[son])son++;
if(a[son]<a[tt])
swap(a[son],a[tt]),tt=son;
else break;
}
}
main(){
cin>>n;
for(i=1;i<=n;i++){
cin>>fl;
if(fl==1){
cin>>x;
a[++t]=x;
up(t);
}
else if(fl==2){
if(t==0)cout<<"empty\n";
else cout<<a[1]<<"\n";
}
else{
if(t==0)cout<<"err\n";
else a[1]=a[t],t--,down(1);
}
}
}
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,i,fl,x,t,a[1000100];
void up(int t){int fa;while(t!=1){fa=t/2;if(a[fa]>a[t])swap(a[t],a[fa]),t=fa;else break;}
}
void down(int tt){int son;while(tt*2<=t){son=tt*2;if(son+1<=t&&a[son+1]<a[son])son++;if(a[son]<a[tt])swap(a[son],a[tt]),tt=son;else break;}
}main(){cin>>n;for(i=1;i<=n;i++){cin>>fl;if(fl==1){cin>>x;a[++t]=x;up(t);}else if(fl==2){if(t==0)cout<<"empty\n";else cout<<a[1]<<"\n";}else{if(t==0)cout<<"err\n";else a[1]=a[t],t--,down(1);}}
}
堆【模板】大根堆
题目描述2
初始大根堆为空,我们需要支持以下3种操作:
操作1: 1 x 表示将x插入到堆中(1e-6<=x<=1e6)
操作2: 2 输出该大根堆内的最大数,若大根堆为空,则输出empty
操作3: 3 删除该大根堆内的最大数,若大根堆为空,则输出err
输入
第一行包含一个整数N,表示操作的个数
接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:
操作1: 1 x
操作2: 2
操作3: 3
输出
包含若干行,根据题意输出。
样例输入2
12
1 5
2
3
3
2
1 -5
1 7
1 -9
2
2
1 217
2
样例输出2
5
err
empty
7
7
217
提示2
数据规模:
对于30%的数据:N<=20
对于70%的数据:N<=10000
对于100%的数据:N<=10^6
样例说明:
12
1 5
2 输出堆顶5
3 删除5
3 删堆顶时堆为空,输出err
2 取堆顶时堆为空,输出empty
1 -5
1 7
1 -9
2 输出堆顶7
2 输出堆顶7
1 217
2 输出堆顶217
代码2
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll i,j,a[600100],n,q,x,t,a1,T,a2,a3,fl;
void up(int t){
int fa;
while(t!=1){
fa=t/2;
if(a[fa]<a[t])
swap(a[fa],a[t]),t=fa;
else break;
}
}
void down(int fa){
int son;
while(fa*2<=t){
son=fa*2;
if(son+1<=t&&a[son+1]>a[son])son++;
if(a[fa]<a[son])swap(a[fa],a[son]),fa=son;
else break;
}
}
main(){
cin>>n;
for(i=1;i<=n;i++){
cin>>fl;
if(fl==1){
cin>>x;
a[++t]=x;
up(t);
}
else if(fl==2){
if(t==0)cout<<"empty\n";
else cout<<a[1]<<"\n";
}
else{
if(t==0)cout<<"err\n";
else a[1]=a[t],t--,down(1);
}
}
}
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll i,j,a[600100],n,q,x,t,a1,T,a2,a3,fl;
void up(int t){int fa;while(t!=1){fa=t/2;if(a[fa]<a[t])swap(a[fa],a[t]),t=fa;else break;}
}
void down(int fa){int son;while(fa*2<=t){son=fa*2;if(son+1<=t&&a[son+1]>a[son])son++;if(a[fa]<a[son])swap(a[fa],a[son]),fa=son;else break;}
}
main(){cin>>n;for(i=1;i<=n;i++){cin>>fl;if(fl==1){cin>>x;a[++t]=x;up(t);}else if(fl==2){if(t==0)cout<<"empty\n";else cout<<a[1]<<"\n";}else{if(t==0)cout<<"err\n";else a[1]=a[t],t--,down(1);}}
}
相关文章:
堆【模板】小根堆堆【模板】大根堆(回)
目录 堆【模板】小根堆 题目描述1 输入1 输出1 样例输入 1 样例输出 1 提示1 代码1 堆【模板】大根堆 题目描述2 输入 输出 样例输入2 样例输出2 提示2 代码2 堆【模板】小根堆 题目描述1 初始小根堆为空,我们需要支持以下3种操作: 操作…...
【JavaScript】JavaScript简介
希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 JavaScript入门(1)————JavaScript简介开篇说明一、什么是JavaScript二、JavaScript的使用2.1 开发工具的选择…...
pg_rman:备份和恢复管理工具#postgresql培训
pg_rman 是 PostgreSQL 的在线备份和恢复工具。 pg_rman 项目的目标是提供一种与 pg_dump 一样简单的在线备份和 PITR 方法。此外,它还为每个数据库集群维护一个备份目录。用户只需一个命令即可维护包括存档日志在内的旧备份。 #PG培训#PG考试#postgresql考试#pos…...
【小学期】常用基于Swing的七个静态界面
示例1:基本的带按钮和标签的界面 import javax.swing.*; import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_C…...
JavaScript高级程序设计(第四版)--学习记录之迭代器与生成器(上)
什么是迭代? 迭代的意思是按照顺序反复多次执行一段程序。循环是迭代机制的基础,因为它可以指定迭代的次数,以及每次迭代要执行的操作。 迭代器模式 迭代器模式描述了一个方案,可以把有些结构称为“可迭代对象” ,这些…...
51单片机第9步_结构和联合
本章重点学习结构和联合。 //结构和联合应用举例 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf();向串口发送一串字节; /…...
lua5.3.4的Linux的库文件下载地址
从这个链接选lua5.3.4 Lua Binaries (sourceforge.net) 进入-> 这个页面 LuaBinaries - Browse /5.3.4/Linux Libraries at SourceForge.net 之后就可以下载了。...
网盘挂载系统-知识资源系统-私域内容展示系统
系统介绍: 存储:一共支持约30款云盘存储,其中包括主流的(百度网盘、阿里云盘、夸克云盘、迅雷云盘、蓝奏云、天翼云盘),部分展示 以及特别的(一刻相册、对象存储、又拍云存储、SFTP、MEGA 网盘…...
水位自动监测摄像机
随着科技的不断进步,水位自动监测摄像机作为现代智能监控技术的重要应用,正在广泛应用于水利工程、防洪管理和环境监测等领域,显著提升了监测效率和数据准确性。水位自动监测摄像机利用高精度摄像头和先进的图像处理技术,能够实时…...
基于SSM+Jsp的疫情居家办公OA系统
开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…...
phpstorm2024代码总是提示“no usages”或者“无用法”解决办法
问题:phpstorm2024使用时,总是会提示无用法,如果没有安装中文语言包的情况下会提示:no usages,如果想关闭怎么办? 编译器右上角点击齿轮进入设置,按照下图的方法点击即可关闭。或者在编译器的“…...
Unity WebGL项目问题记录
一、资源优化 可通过转换工具配套提供的资源优化工具,将游戏内纹理资源针对webgl导出做优化。 工具入口: 工具介绍 Texture 搜索规则介绍 已开启MipMap: 搜索已开启了MipMap的纹理。 NPOT: 搜索非POT图片。 isReadable: 搜索已开启readable纹理。 …...
如何级联移位寄存器(74HC595)
在这个项目中,我们将使用 74HC595 移位寄存器将 2 个移位寄存器级联在一起。这样级联移位寄存器现在可以控制 16 个输出。 当然您可以级联任意数量的移位寄存器。如果您要级联第三个移位寄存器,它可以控制 24 个输出。如果您级联第四个移位寄存器&#x…...
找到你的专属健康食谱:结合肠道菌群与疾病状态
谷禾健康 俗话说:“病从口入”。饮食是决定个人健康状况的重要因素,饮食与疾病的发展有关,特别是胃肠道(GI)疾病。 与膳食相关的症状发生率很高,例如在吸收不良(如乳糖不耐症)情况下出现的腹痛和腹泻;乳糜泻、食物过敏…...
大模型微调实战之基于星火大模型的群聊对话分角色要素提取挑战赛:Task01:跑通Baseline
目录 0 背景1 环境配置1.1 下载包1.2 配置密钥1.3 测试模型 2 解决问题2.1 获取数据2.2 设计Prompt2.2 设计处理函数2.3 开始提取 附全流程代码 0 背景 Datawhale AI夏令营第二期开始啦,去年有幸参与过第一期,收获很多,这次也立马参与了第二…...
大数据开发如何管理项目
在面试的时候总是 会问起项目,那在大数据开发的实际工作中,如何做好一个项目呢? 目录 1. 需求分析与项目规划1.1 需求收集与梳理1.2 可行性分析1.3 项目章程与计划 2. 数据准备与处理2.1 数据源接入2.2 数据仓库建设2.3 数据质量管理 3. 系统…...
在实施数据加密时,有哪些常见的加密技术可供选择?
在实施数据加密时,有哪些常见的加密技术可供选择? 在实施数据加密时,有许多常见的加密技术可供选择,这些技术根据其原理、安全性、效率和适用场景有所不同。以下是一些常见的加密技术: 对称加密(Symmetri…...
容易涨粉的视频素材有哪些?容易涨粉的爆款短素材库网站分享
如何挑选社交媒体视频素材:顶级视频库推荐 在社交媒体上脱颖而出,视频素材的选择至关重要。以下是一些顶级的视频素材网站推荐,不仅可以提升视频质量,还能帮助你吸引更多粉丝。 蛙学网:创意的源泉 作为创意和独特性的…...
2024 CISCN 华东北分区赛-Ahisec
Ahisec战队 WEB python-1 break 源码如下: # -*- coding: UTF-8 -*-from flask import Flask, request,render_template,render_template_stringapp Flask(__name__)def blacklist(name):blacklists ["print","cat","flag",&q…...
Linux驱动开发笔记(十三)Sysfs文件系统
文章目录 前言一、Sysfs1.1 Sysfs的引入1.2 Sysfs的目录结构1.2 Sysfs的目录详解1.2.1 devices1.2.2 bus1.2.3 class1.2.4 devices、bus、class目录之间的关系1.2.5 其他子目录 二、Sysfs使用2.1 核心数据结构2.2 相关函数2.2.1 kobject_create_and_add2.2.2 kobject_put()2.2.…...
LeetCode 238. Product of Array Except Self 题解
LeetCode 238. Product of Array Except Self 题解 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整…...
收藏!小白也能看懂:Transformer残差连接新处理方式,大模型学习必备!
本文介绍了Kimi团队提出的一种新的Transformer残差连接处理方式,旨在解决传统Transformer模型中“PreNorm稀释”问题。通过引入“注意力残差”,每一层使用Softmax机制选择性地组合前层输出,有效缓解了深层网络训练中的梯度消失问题。此外&…...
通义千问3-4B降本增效:单卡实现2560维向量生成案例
通义千问3-4B降本增效:单卡实现2560维向量生成案例 1. 引言:当向量生成不再需要“大力出奇迹” 如果你正在搭建一个智能知识库,或者想为自己的应用增加语义搜索能力,那你一定遇到过这个难题:如何高效、低成本地生成高…...
告别电子教材获取难题:tchMaterial-parser如何让资源下载效率提升8倍
告别电子教材获取难题:tchMaterial-parser如何让资源下载效率提升8倍 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 您是否曾为获取教学资源而在多个…...
用ESP32和Arduino打造你的专属F1蓝牙方向盘(附完整3D打印文件)
用ESP32和Arduino打造你的专属F1蓝牙方向盘(附完整3D打印文件) 模拟赛车爱好者们对沉浸式体验的追求从未停止,而一款高度定制化的F1风格方向盘往往是提升操控感的关键。本文将带你从零开始,利用ESP32开发板和Arduino生态ÿ…...
如何在广告泛滥的时代找到纯粹的音乐净土?铜钟音乐的极简听歌方案
如何在广告泛滥的时代找到纯粹的音乐净土?铜钟音乐的极简听歌方案 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特!(密码重置功能已回归) 项目地址: https://gitcode.com/Gi…...
基于LFM2.5-1.2B-Thinking-GGUF的Java面试题智能生成与解析系统
基于LFM2.5-1.2B-Thinking-GGUF的Java面试题智能生成与解析系统 1. 解决Java面试准备的痛点 对于Java开发者来说,面试准备往往是个耗时费力的过程。传统的刷题方式存在几个明显问题:一是题库更新慢,跟不上技术发展;二是题目质量…...
论文写作“黑科技”:书匠策AI,让课程论文创作如虎添翼!
在学术探索的征途中,每一位学子都渴望拥有一把开启智慧之门的钥匙,尤其是在面对课程论文这一挑战时,更是希望能有得力助手助自己一臂之力。今天,就让我带你揭开书匠策AI科研工具的神秘面纱,看看它是如何成为你课程论文…...
无人机传感器技术解析:从IMU到激光雷达的全面指南
1. 无人机传感器的核心作用 当你操控无人机在空中自由翱翔时,有没有想过它为什么能如此听话?这背后是一整套传感器系统在默默工作。就像人类需要眼睛、耳朵和平衡感来感知世界一样,无人机也需要各种传感器来"感知"周围环境。这些传…...
Python3.8环境管理:用Miniconda轻松创建多个项目环境
Python3.8环境管理:用Miniconda轻松创建多个项目环境 1. 为什么需要Python环境管理 在日常开发中,我们经常会遇到这样的问题:项目A需要Python3.6和TensorFlow1.15,而项目B需要Python3.8和TensorFlow2.4。如果直接在系统上安装这…...
