poj 3481 Double Queue(平衡树,SBT)

华为HN8145Vjffs2.tar.gz电信备份 华为HN8145V万兆电信光猫原厂电信界面jffs2.tar.gz备份 立即下载


poj 3481 Double Queue


平衡树模板题,练手


#include<stdio.h>
#include<string.h>
#define MAXN 100005
struct node
{
    int l,r;
    int key,id;
    int size;
}t[MAXN];
int top,root;
void lRotate(int &p)
{
    int rch=t[p].r;
    t[p].r=t[rch].l;
    t[rch].l=p;
    
    t[rch].size=t[p].size;
    t[p].size=t[t[p].l].size+t[t[p].r].size+1;
    
    p=rch;
}
void rRotate(int &p)
{
    int lch=t[p].l;
    t[p].l=t[lch].r;
    t[lch].r=p;
    
    t[lch].size=t[p].size;
    t[p].size=t[t[p].l].size+t[t[p].r].size+1;
    
    p=lch;
}
void maintain(int &p,bool flag)
{
    if(!flag)
    {
        if(t[t[t[p].l].l].size>t[t[p].r].size)//LL
            rRotate(p);
        else if(t[t[t[p].l].r].size>t[t[p].r].size)//LR
            lRotate(t[p].l),
            rRotate(p);
        else return ;
    }
    else
    {
        if(t[t[t[p].r].r].size>t[t[p].l].size)
            lRotate(p);
        else if(t[t[t[p].r].l].size>t[t[p].l].size)
            rRotate(t[p].r),
            lRotate(p);
        else return ;
    }
    maintain(t[p].l, false);
    maintain(t[p].r, true);
    maintain(p, false);
    maintain(p, true);
}
void insert(int &p,int key,int id)
{
    if(p==0)
    {
        p=++top;
        t[p].l=t[p].r=0;
        t[p].size=1;
        t[p].key=key,t[p].id=id;
    }
    else
    {
        t[p].size++;
        if(key<t[p].key) insert(t[p].l,key,id);
        else insert(t[p].r,key,id);
        maintain(p, key>=t[p].key);
    }
}
int remove(int &p,int key)
{
    t[p].size--;
    if(t[p].key==key||
       (key<t[p].key&&t[p].l==0)||
       (key>t[p].key&&t[p].r==0))
    {
        int retkey=t[p].key;
        if(t[p].l&&t[p].r)
            t[p].key=remove(t[p].l,t[p].key+1);
        else
            p=t[p].l+t[p].r;
        return retkey;
    }
    else if(key<t[p].key) return remove(t[p].l,key);
    else return remove(t[p].r,key);
}
int getmin()
{
    int p=root;
    while(t[p].l) p=t[p].l;
    printf("%d\n",t[p].id);
    return t[p].key;
}
int getmax()
{
    int p=root;
    while(t[p].r) p=t[p].r;
    printf("%d\n",t[p].id);
    return t[p].key;
}
int main()
{
    top=root=0;
    int op,id,key;
    while(scanf("%d",&op)!=EOF&&op)
    {
        if(op==1)
        {
            scanf("%d%d",&id,&key);
            insert(root,key,id);
        }
        else if(op==2)
        {
            int temp=getmax();
            remove(root,temp);
        }
        else
        {
            int temp=getmin();
            remove(root,temp);
        }
    }
    return 0;
}


YOLO系列专栏(五):YOLO26 模型部署实战 | 从训练完成到落地应用(CPU/GPU/移动端) 训练好的YOLO26模型,本质上是一个权重文件(.pt格式),无法直接在实际场景中使用——不同应用场景需要不同格式的模型(如ONNX、TensorRT、TFLite),不同设备(CPU/GPU/移动端)的部署方式也截然不同。在保证模型精度基本不变的前提下,最大化提升推理速度,适配不同硬件设备。如果部署不当,会出现以下问题:❌ 推理速度慢:CPU部署单帧推理耗时超过100ms,无法满足实时检测需求(如监控、自动驾驶);❌ 模型格式不兼容:直接使用.pt权重文件,无法在移动端、嵌入式设备上运行; 阅读详情

相关推荐

Prompt Airlines CTF通关实战:从提示词注入到多模态攻击的AI安全攻防演练

提示词注入(Prompt Injection)是当前大语言模型(LLM)应用面临的核心安全威胁之一,其原理在于攻击者通过精心构造的用户输入,覆盖或绕过系统预设的指令,从而操控模型行为。这种攻击手法的技术价值在于揭示了AI系统在理解与执行指令时存在的逻辑边界模糊性,可能导致数据泄露、越权访问等严重风险。在应用场景上,从基础的客服对话到结合视觉识别的多模态系统,都可能成为攻击面。本文以一场名为“Prompt Airlines CTF”的实战挑战为例,深入剖析了包括指令遗忘、上下文注入、工具调用滥用及多模态提示注

aodan5477的博客 515

Spring 远程调用 HTTP invoker

Spring HTTP invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用(意味着可以通过防火墙),并使用java的序列化机制在网络间传递对象。 所以所有的pojo类必须实现序列化接口 webservice HTTP invoker 跨平台,跨语言 只支持java语言 支持SOAP,提供wsd

刘志龙的专栏/技术博客 1057

新疆地形数据下载:30米、12.5米、5米DEM地形数据

新疆是我国陆地面积最大的省级行政区,总面积达166万平方公里。新疆的地形也十分的复杂,新疆的地形呈山脉与盆地相间排列,盆地被高山环抱,,俗称“三山夹两盆”。三山指阿尔泰山、昆仑山、天山,两盆是指塔里木盆地和准噶尔盆地。 对精度要求不高的话,可以直接使用图新地球下载 新疆30米地形数据 大小:9.26GB 来自ASTER v3的新疆30米地形数据 30米地形数据下载 新疆12.5米地形数据 12.5米DEM数据由于精度比较高,一般不会用到全省的数据,通常用的是一个地区的,因此,可以单独分

LocaSpace的博客 3495

POJ 3481:双端队列 ← 数组模拟

​虽然本题来源于三个刷题网站: POJ 3481:http://poj.org/problem?id=3481 HDU 1908:http://acm.hdu.edu.cn/showproblem.php?pid=1908 AcWing 5128:https://www.acwing.com/problem/content/5128/ 但是,下文使用数组模拟的代码仅在 POJ 3481 上通过,而在 HDU 1908 及 AcWing 5128 上均超时。故可考虑使用 STL map 来实现。

hnjzsyjyj的专栏 377

springboot源码 红色J_通达信副图指标源码之,出手就赢

今天跟大家分享一个通达信副图指标源码,本指标没有未来函数,因为本指标没有卖点提示,所以本指标需配合主图指标使用效果会更好,简单易懂,很容易明白,所以就不过多介绍使用方法了,以下是指标的贴图。风险提示!股市有风险买卖需谨慎,本指标只做参考建议,不做买卖交易结果,自己要对自己交易结果的盈亏负责,以下是指标的源码。VAR2:=REF(LOW,1);VAR3:=SMA(ABS(LOW-VAR2),3,1)...

weixin_39859909的博客 2847

Git系列(一)、Git基础教程【建议收藏】

Git一、Git简介1.1、什么是Git? 一、Git简介 1.1、什么是Git? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。 .........

一宿君 4万+

POJ 3481 Splay

传送门:POJ 3481题解 用二分查找建树, 然后把新节点放到root下, 这样能够保证查询复杂度平摊为O(logn); 查询后, 把查找的节点删掉(修改父亲和某个孩子指针, 数组模拟), 因为新建的时候旋转, 所以这里的节点不会又两个孩子 还有一种map解法 Splay code:#include<iostream> #include<cstring> #include<cstd

退役ACMer 637

2、集中式MIMO雷达研究进展:正交波形设计与信号处理

集中式多输入多输出(Multiple Input Multiple Output,MIMO)雷达通常利用正交波形增加发射波形 自由度,采用数字阵列拓展空间收发自由度,使得雷达接收机的天线孔径获得明显扩展,最终带来空间分辨率、 测角精确度、杂波抑制能力等大幅度提升。但是,这些性能提升的前提是发射波形具有正交特性。事实上,在 实际应用中,在不牺牲时域/频域资源情况下,受限于时宽带宽积,无法获得完全正交的波形集合,从而限制了 MIMO雷达系统性能。本文对集中式MIMO雷达正交波形复用的技术原理进行了系统回顾,分别

qq_43416206的博客 2772

POJ 3481 Double Queue(STL)

题意:让你模拟一个队列,每次能够把一个新的单位加到队列中,或者是找到优先 级最高或最低的人并删除。 首先就应该知道我们需要一个可以自排序的数据结构,于是set乱搞。代码:// // Created by CQU_CST_WuErli // Copyright (c) 2016 CQU_CST_WuErli. All rights reserved. // #include <iostream>

只玩三国的程序猿的专栏 502

【重温童年】基于tkinter模块设计的Q宠大乐斗武器升星模拟器:重温经典,畅享休闲时光

与传统的Q宠大乐斗不同,这款模拟器还加入了一个创新的功能——自定义升星概率。玩家可以根据自己的喜好和策略,为不同的武器设置不同的成功率和降级率。比如,你可以将“嗜血”这把武器的升星难度设置得极高,以体现其稀有性和强大威力;也可以将“平底锅”这样的普通武器设置得相对容易升星,让玩家在升级过程中感受到更多的成就感。这种自定义的概率设置,不仅增加了游戏的趣味性和挑战性,还让玩家在升级过程中有了更多的策略和选择。你可以根据自己的武器库和卷轴数量,制定出最合适的升级计划,从而在游戏中占据先机。

nmdbbzcl的博客 1236

matlab 显示曲面网格【2025最新版】

matlab点云工具箱对点云三维重建结果显示的函数。博客长期更新,本文最近更新时间为:2025年9月14日。

点云侠的博客 2580

poj 3481 Double Queue(SBT解法)

Double Queue Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5004   Accepted: 2336 Description

志当存高远 1523

基于最小二乘法(LS)和最小均方误差(MMSE)算法的导频信道估计

导频信道估计在无线通信系统中起着至关重要的作用,它用于估计无线信道的特性,以便在接收端进行正确的信号解调和解码。最小二乘法(LS)和最小均方误差(MMSE)是两种常用的导频信道估计算法,它们在估计精度和计算复杂度之间取得了良好的平衡。首先,我们提取当前的导频符号,然后将接收到的信号与导频符号相乘得到接收导频信号。最小二乘法是一种经典的导频信道估计算法,它通过最小化接收信号与预测信号之间的均方误差来估计信道。下面将详细介绍基于LS和MMSE算法的导频信道估计,并提供相应的MATLAB代码实现。

pytorchCode的博客 678

[BST-SBT]POJ_3481_double queue

题意:裸的平衡树题 平衡树功能:插入,删除最大,删除最小 挂一个SBT模板吧,明天就校赛了,所以重写了一下SBT,把原来的删除操作改了下: #include #include using namespace std; const int MAXN = 1111111,INF = 10000001; struct Key{ int k,p; Key(){} Key(in

Airarts_的专栏 738

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ3481 Double Queue —— 我的第一棵SBT~

标准的SBT,其实可以用堆来做的……这题没有体现出SBT强大的Delete功能~ 参考代码: program poj3481;//By_Thispoet const maxn=1000005; var sum,m,p,q,root:longint; left,right,size,key,num:array[0..maxn]of longint; procedur...

weixin_34198762的博客 154

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

poj 3481 Double Queue

<br />用这个题来练习了下SBT,感觉有点奇怪,set居然还快些,没搞懂<br />学sbt可以看陈启峰的论文http://wenku.baidu.com/view/364afa42a8956bec0975e3b1.html 还是中文的,很简单<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月13日, 下午3:38 */ #include <cstdlib> #include <stdio.h> #

Euler_M 1029

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

poj 3481 Double Queue (SBT)

题意:给定集合,每次插入和删除元素,qiu

gmcather 552

poj 3481 Double Queue(平衡二叉树基础练习题)

题意: 。。。 思路: 这道题用来作SBT的练习了。。。// SBT节点,固定域 l, r, sz // 需要一个key来比较大小 struct node { int l, r, sz, val, K; node (int x=0, int y=0):l(0), r(0), sz(0), val(x), K(y){} };struct SBT { node a[Maxn

slowlight93的专栏 2337

poj3481double queue【treap树入门题】

9月份那会工大的大神过来讲课,像是被催眠似的昏睡了大半节课,拖延症晚期患者终于下决心要开始重新学习平衡树。不看不知道,一看吓一跳。原来treap树、splay树都是平衡树==我还在假期学习计划里面分开列了==丢人丢大发了orz 而treap树就是堆树,利用大根堆或者小根堆的性质以及随机给出的优先级建的树,实在是忘得太狠了==由于本人实在不喜欢一堆指针的模板,于是乎在网上找了这个:点击打开链接 而且

MissZhou要努力 1040

POJ-3481 Double Queue,Treap树和set花式水过!

Double Queue    本打算学二叉树,单纯的二叉树感觉也就那几种遍历了, 无意中看到了这个题,然后就花了两天时间又去学了学Treap树,真的不好理解,真应该从基础开始的,但我比较倔强,看到这题一定要先做了再说。上午和某公众号交流了一下,初学,不明白为什么要借助随机优先值来修正,而这题本身自带优先值,为什么不能用这个来修正呢,给出的回答是:为了保证平衡,因为键值生成的BST树有很多种形态

NYIST_TC_LYQ的博客 833

POJ3481 Double Queue (map)

使用map,并将优先级值放在first以自动排序,如果输入的代码为2,就输出最后一组元素的second并删去,输入代码为3时同理。

2403_87149971的博客 360

POJ3481 Double Queue (平衡树)【例题精讲】

(这题目莫名让我想到了穿越火线。。。) 题意:编写一个银行应用程序,支持下列操作: 1,加入一个客户(输入:1,k,q) 其中k是客户的编号(不一定是1-n但保证小于一百万),q是客户优先级(整型数好吧)。 2,询问当前优先度最高的客户的编号(输入:2),并且将这个客户删除。 3,询问当前优先度最低的客户的编号(输入:3),并且将这个客户删除。 4,结束操作(输入0)。 ...

daxian3723的博客 356

poj 3481 分类: poj 2015-0...

裸的平衡树,于是就1A了,于是这就是我以后的平衡树模板了 不要问我为什么用宏定义和结构体写出一个奇怪[极像数组并且可以用数组代替]的表达方式, 这是我最后的倔强。。。。。。 UPD:平衡树模板已换! #include<cstdio> #include<cstdlib> #include<ctime> #inclu...

aa288288的博客 171

poj 3481

<br />    题目描述:给出一些操作查找序列里的最大最小值。<br />    还是用SBT做的,其实平衡树很好用,效率也高,代码长一点全当作是锻炼代码能力吧。<br /> <br /> <br />#include"stdio.h"#include"string.h"#include"stdlib.h"constint N=50005;constint M=1000005;structNode{int k;int prio;int size;structNode*l,*r;}*root,tree[M

Yular的专栏 1813

poj3481 Double Queue(set模拟or splay)

题目链接 题目意思明确。可以用两个set来模拟,一个大的优先,一个小的优先,同时删除、同时加入。 struct item1 { int k, p; item1() {} item1(int k, int p) : k(k), p(p) {} bool operator < (const item1& rhs) const { return p <

KIJamesQi的博客 581

poj3481Double Queue之set解法

Double Queue Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15781 Accepted: 6993 DescriptionThe new founded Balkan Investment Group Bank (BIG-Bank) opened a new office in Buc

天行健,君子以自强不息 512
上一篇: The end...
下一篇: hdu 4557 非诚勿扰(平衡树方法)
yjCola
博客等级 码龄14年 4粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值