【洛谷P1801】黑匣子【堆】

两个独立的正态分布的和仍然为正态分布的证明 正态分布的和 阅读详情

题目大意 :

题目链接:https://www.luogu.org/problemnew/show/P1801
两种操作:

  • A D D ( x ) ADD(x) ADD(x):加入 x x x元素
  • G E T GET GET:第 i i i次 G E T GET GET操作输出第 i i i小的元素

思路:

有点像对顶堆啊。
每次维护一个大根堆,保证只保存最小的 s s s个数字。其中 s s s表示现在进行了 s s s次 G E T GET GET操作。
然后维护一个小根堆,把其他所有数字储存进去。这样每次询问完就可以把不在大根堆里的最小的元素扔进大根堆里。方便下一次询问。
时间复杂度 O ( m log ⁡ n ) O(m\log n) O(mlogn)


代码:

#include <queue>
#include <cstdio>
using namespace std;

const int N=200010;
int n,m,s,add[N],cnt[N];
priority_queue<int> q1,q2;

int main()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
		scanf("%d",&add[i]);
	for (int i=1;i<=m;i++)
	{
		int x;
		scanf("%d",&x);
		cnt[x]++;
	}
	for (int i=1;i<=n;i++)
	{
		q1.push(add[i]);
		while (q1.size()>s)
		{
			q2.push(-q1.top());
			q1.pop();
		}
		for (;cnt[i];cnt[i]--)
		{
			s++;
			q1.push(-q2.top());
			q2.pop();
			printf("%d\n",q1.top());
		}
	}
	return 0;
}
改进yolov8|BackBone改进:PWConv、FasterNeXt替换yolov8主干网络 各位哥哥姐姐弟弟妹妹大家好,我是干饭王刘姐,主业干饭,主业2.0计算机研究生在读。和我一起来改进yolov8变身计算机大牛吧!本文中的论文笔记都是刘姐亲自整理,原创整理哦~ 阅读详情

相关推荐

二维码扫描与页面跳转的完整流程解析

本文详细解析了二维码扫描与页面跳转的完整流程,从核心原理到前后端实现,涵盖了二维码生成、扫码事件处理、后端验证机制及跳转逻辑等关键环节。特别介绍了如何使用qrcode.js生成二维码、WebSocket处理扫码状态以及JWT令牌验证设计,帮助开发者构建安全高效的扫码跳转系统。

cicd6pipeline的博客 1089

P1801 黑匣子

并且这是第二次写这个题,明显比上次思路清晰,代码简短效率还高,上次也是写的对顶堆结果代码不能看。

m0_73035684的博客 195

保姆级教程:用Ansible 2.9自动化配置华为ENSP路由器(附Cloud连接避坑指南)

本文提供了一份详细的Ansible 2.9与华为ENSP路由器自动化配置教程,涵盖环境搭建、网络连通性配置、Playbook开发及典型问题排查。特别针对Cloud连接常见问题提供避坑指南,帮助运维工程师快速掌握网络自动化技能,提升工作效率。

weixin_42561476的博客 376

P1801 黑匣子(对顶堆)

P1801黑匣子https://www.luogu.com.cn/problem/P1801 #include <iostream> #include <cstdio> #include <string> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <cstring> #include &.

Ghostttttttiii的博客 348

深入STM32 USB OTG FS:从官方MSC例程到实战双存储设备移植全记录

本文详细解析了STM32 USB OTG FS在双存储设备开发中的实战应用,从协议栈底层机制到SD卡/SPI Flash同步挂载的实现。通过优化SDIO接口和SPI Flash驱动,结合USB MSC类的关键实现,提供了完整的解决方案和性能优化策略,适合嵌入式开发者参考。

weixin_28366475的博客 371

qt下使用grpc编程(2) —— 练手!自己改的一个简单小例子!1

(1)在研究了grpc官方提供的helloworld例程后,自己试着写了个小程序。 (2)编写proto文件。 proto文件用于定义服务和消息,用protobuf的语法编写,protobuf是一种通信协议,详细请百度。下面附上源码: syntax = "proto3"; option java_multiple_files = true; option java_pac

u011099079的博客 3925

P1801 黑匣子 题解

P1801 黑匣子 题解

lv_jia_qi的博客 466

【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】

在现代半导体设计中,DFT(Design for Test)技术的重要性不言而喻。它确保了芯片在制造完成后能够进行高效和可靠的测试。DFT设计规则检查(DRC)作为DFT流程中的一个关键环节,通过一系列自动化工具检测设计中的潜在问题,从而保证设计的可测试性和整体质量。在本文中,我们将详细探讨DFT DRC的概念、重要性、检查流程以及具体的规则和应用。Tessent是业界领先的DFT解决方案之一,其DRC工具通过一系列自动化检查,确保设计符合DFT要求。

CodingCos的博客 4168

【洛谷】P1801 黑匣子

可以维护两个堆,一个大顶堆一个小顶堆,这两个堆存插入的值,并且要维护小顶堆的数都大于等于大顶堆的数,这样查询的时候直接查大顶堆的堆顶即可。Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量。输出Black Box根据命令串所得出的输出串,一个数字一行。这个Black Box要处理一串命令。最开始的时候Black Box是空的.而。我们来演示一下一个有。

数学、算法爱好者的博客 466

两点调制原理以及RF DAC和PLL SDM两条输入路径理解

特性数据本质原始数字比特流 (0/1)平滑后的预失真波形数据连接对象Σ-Δ调制器 (SDM)的小数输入RF DAC在系统中的角色主调制路径:通过改变PLL分频比产生频率偏移辅助补偿路径:通过RF DAC产生补偿电压,校正PLL失真可否加入延时可以且必须。用于数字时序对齐,对性能无影响。绝对不可以。会导致补偿失配,严重破坏信号频谱。功能目标实现数字域的频率调制确保模拟域的波形和频谱完美因此,在您所描述的这种先进发射机架构中,2-point数据是数字指令,送给SDM;

m0_49540263的博客 604

智元机器人开源具身仿真框架 Genie Sim 入门教程

GenieSim是AgiBot推出的具身智能仿真框架,提供完整闭环开发管道,包括轨迹生成、模型训练和基准测试。框架支持Docker容器化部署,要求Ubuntu 22.04和NVIDIA硬件环境。主要功能涵盖: 支持12种基准测试任务 提供ADER评估框架 集成UniVLA/RDT等基线模型 支持PICO/键盘遥操作 具备轨迹记录回放功能 提供完整API控制接口 开发者可通过Hugging Face获取场景资产,使用标准化ROS主题与仿真环境交互。框架特别优化了碰撞检测和抓取物理模拟,适用于从简单抓取到复杂操

2506_90492529的博客 2542

《P1801 黑匣子》

Black Box 是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量 i。最开始的时候 Black Box 是空的.而 i=0。这个 Black Box 要处理一串命令。 命令只有两种: ADD(x):把 x 元素放进 Black Box; GET:i 加 1,然后输出 Black Box 中第 i 小的数。

Jasmine_llq的博客 884

在 SAP BTP Cloud Foundry 环境中开发 SAP HANA 的完整实战路线图

SAP HANA Cloud迁移路径解析:从本地到云原生的数据库现代化 本文梳理了SAP HANA在Cloud Foundry环境中的架构定位和实施路径,针对不同起点的项目提供迁移建议。核心内容包括: SAP HANA Cloud在Cloud Foundry中的双重角色:既作为平台服务提供数据库实例,又通过HDI容器管理MTA应用中的数据库工件。 针对四类典型项目起点的迁移策略: 绿地项目:直接采用CAP+SAP HANA Cloud组合 已有HANA service或XS advanced项目:需对照兼容

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 266

洛谷P1801 黑匣子(堆 )

洛谷P1801 黑匣子题目描述Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量i。最开始的时候Black Box是空的.而i等于0。这个Black Box要处理一串命令。命令只有两种:ADD(x):把x元素放进BlackBox;GET:i加1,然后输出Blackhox中第i小的数。记住:第i小的数,就是Black Box里的数的按从小到大的顺序排序后的第i个元素。例

闲人请进 547

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

洛谷P1801 黑匣子 堆

题目链接:https://www.luogu.com.cn/problem/P1801 本题用一个小根堆,一个大根堆即可解决。 每有一个新元素,将它和大根堆的堆顶进行比较,如果比它小,将它放入大根堆,并把大根堆堆顶放入小根堆。如果比它大,直接将其放入小根堆。如果这次有GET命令,就输出小根堆堆顶元素,并将其拿出放入大根堆。 代码如下(用的优先队列) #include <bits/stdc++...

hhhcbw的博客,欢迎各位来访 274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

P1801-黑匣子_NOI导刊2010提高【堆】

正题 题目链接: https://www.luogu.org/problemnew/show/P1801 大意 有两种操作, 1.将一个数放入黑匣子中 2.++i之后查询第i小的数(初始为i) 解题思路 维护两个堆,一个是比第i小的数大的数的最小堆,一个是比一个是比第i+1小的数小的数的最大堆,插入一个数时,若他比第二个堆的堆顶小就将第二个堆的堆顶放入第一个堆,然后...

QuantAsk 334

【题解】洛谷P1801 黑匣子(堆)

怎么求一个堆内的第k小的值呢?我们可以把问题化为两个堆来解决。 存一个大根堆一个小根堆,小根堆负责读入元素。a数组记录要读的元素,b数组记录当前位置。读入当前的范围内饱含的元素,并把这个元素放到小根堆里,如果大根堆非空(注意!!!)并且大根堆堆顶比小根堆堆顶要大就交换堆顶,最后输出小根堆堆顶,把它堆顶扔到大根堆里,代表已经找到了第i小的数。关于大根堆里的数是否能更新小根堆上面已经操作过了。 ...

Rem_Inory的博客 322

洛谷 [P1801] 黑匣子

这道题是一道splay裸题,然而身为蒟蒻的我并不会,所以这道题我维护的是一个大根堆与一个小根堆结合起来的类似沙漏的结构。 本题难点在于询问的不是最大最小值,而是第K小值,所以我们想到了维护这样两个堆,上面是一个大小限定为K-1的大根堆,下面是一个小根堆,每次插入/查询操作时,保持前K-1大的始终在大根堆内。 插入/查询函数:int heap[200005][3],hsize[3]; int m,

Mr_Wolfram的高维空间 427

洛谷 P1801 黑匣子

每次操作时,先让数组入大根堆,如果大根堆的元素多于u[i],则将多出的数入小根堆。a1​,a2​,⋯,am​:一串将要被放进 Black Box 的元素。例如上面的例子中 a=[3,1,−4,2,8,−1000,2]。记住:第 i 小的数,就是 Black Box 里的数的按从小到大的顺序排序后的第 i 个元素。u1​,u2​,⋯,un​:表示第 ui​ 个元素被放进了 Black Box 里后就出现一个。:i 加 1,然后输出 Black Box 中第 i 小的数。

hjx20254350118的博客 404

【洛谷】【堆】P1801 黑匣子_NOI导刊2010提高(06)

【题目描述:】 Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量i。最开始的时候Black Box是空的.而i等于0。这个Black Box要处理一串命令。 命令只有两种: ADD(x):把x元素放进BlackBox; GET:i加1,然后输出Blackhox中第i小的数。 记住:第i小的数,就是Black Box里的数的按从小到大的顺序排序后的第i个元素...

weixin_30321709的博客 101

洛谷 P1801 黑匣子_NOI导刊2010提高(06)

堆

sdfzrlt的博客 844

洛谷 - P1801 - 黑匣子 - 对顶堆

这道题是提高+省选-的难度,做出来的话对数据结构题目的理解会增加很多。 可以使用一种叫做对顶堆的东西,对顶堆是在线维护第n小的logn的算法。大概的思路是,假如我们要找的是第n小,我们就维护一个大小为n的(位于下方的)大顶堆,(位于上方的)小顶堆中每个元素都比大顶堆的大。在这道题中,n不变时每次有新的比他小的就把堆顶弹出到对顶(也就是小顶堆)的堆顶,每次n扩大的时候就从(上面的)小顶堆里取出堆顶...

weixin_30912051的博客 223

洛谷 P1801 黑匣子 对顶堆

洛谷 P1801 黑匣子 对顶堆 题解: 用两个堆来维护,一个小根堆,一个大根堆。 对顶堆:可以动态维护第k大的值(比如中位数),每次操作logn 如果说上面是个小根堆,下面是个大根堆,小根堆的元素都大于大根堆的元素,那么我们可以发现:每一层节点从上往下逐层递减 (1)我们保证大根堆一直有i-1个元素,这样小根堆的堆顶就是第i大的元素。 (2)我们首先依次向大根堆中添加元素,若达到了i个,就把大...

化身孤岛的鲸o的博客 604

洛谷 P1801:黑匣子 ← 二叉堆

● 堆是「抽象思想 / 数据结构」,priority_queue 是「C++ 对堆的封装实现」。

hnjzsyjyj的专栏 874

luogu P1801 黑匣子

原题链接: 黑匣子 - 洛谷https://www.luogu.com.cn/problem/P1801 题目描述 Black Box 是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量i。最开始的时候 Black Box 是空的.而i=0。这个 Black Box 要处理一串命令。 命令只有两种: ADD(x):把x元素放进 Black Box; GET:i加1,然后输出 Black Box 中第i 小的数。 记住:第i小的数,就是 B...

zhu_yin233的博客 608
上一篇: 【洛谷P4460】解锁屏幕【状压dp】
下一篇: 【洛谷P4001】狼抓兔子【网络流】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值