首页 > 其他分享 >P3369 【模板】普通平衡树

P3369 【模板】普通平衡树

时间:2024-03-04 23:44:19浏览次数:30  
标签:begin end int bound lower P3369 平衡 模板 op

原题链接

题解1

stl模拟,注意lowerbound的效果和pos的返回值

code1

#include<bits/stdc++.h>
using namespace std;
vector<int> a;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int op,x;
        cin>>op>>x;
        if(op==1) a.insert(lower_bound(a.begin(),a.end(),x),x);
        else if(op==2) a.erase(lower_bound(a.begin(),a.end(),x));
        else if(op==3)
        {
            int pos=lower_bound(a.begin(),a.end(),x)-a.begin();//迭代器减迭代器
            cout<<pos+1<<endl;
        }
        else if(op==4) cout<<a[x-1]<<endl;
        else if(op==5)
        {
            int pos=lower_bound(a.begin(),a.end(),x)-a.begin();//pos返回的是大于等于x的第一个元素在序列里的下标
            if(pos>0) cout<<a[pos-1]<<endl;//前缀
        }
        else
        {
            int pos=lower_bound(a.begin(),a.end(),x+1)-a.begin();//大于等于x+1 相当于大于x
            if(a[pos]>x)  cout<<a[pos]<<endl;
        }
    }
    return 0;
}

标签:begin,end,int,bound,lower,P3369,平衡,模板,op
From: https://www.cnblogs.com/pure4knowledge/p/18053044

相关文章

  • 给大家推荐一款基于Vue3通用型后台管理模板
    ​ 给大家推荐一款基于Vue3通用型后台管理模板这款Vue3后台管理模板介绍如下:        使用Vue3、Vite、ElementPlus、Pinia最新开发技术栈,拥有完整的Token登录鉴权、路由配置、界面简洁美观,可根据需要灵活配置主题、系统采用响应式布局,自适应各类屏幕尺寸、源代码有......
  • 代码模板
    贴这里,防丢。会更新算法模板,坑会慢慢填。写题模板/*Author:Rainypaster(lhy)Time:File:Email:[email protected]*/#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#include<bits/stdc++.h>usingna......
  • 算法模板 v1.9.1.20240303
    算法模板v1.1.1.20240115:之前历史版本已不可寻,创建第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”;删除“编译”-“手动开O优化”;修改“编译”-“CF模板”;删除“读写”;删除“图论”-“欧拉图”-“混合图”;删除“图论”-“可达性统计”;删除“数据类型”-“高精类”。......
  • 并查集(模板介绍+路径压缩)
    并查集(模板介绍+路径压缩)题面P3367并查集题目描述如题,现在有一个并查集,你需要完成合并和查询操作。第一行包含两个整数N,M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Z,X,Y。当Z=1时,将X与Y所在的集合合并。当Z=2时,输出Z与Y是否在同一集合内,是的输出Y;否则输出N......
  • st表+lca模板
    st表#include<bits/stdc++.h>#definelllonglong#definefd(i,a,b)for(inti=a;i<=b;++i)usingnamespacestd;lln,m,t,l,r,dp[1000100][100];intmain(){ std::ios::sync_with_stdio(false); cin>>m>>n; fd(i,1,m)cin>>dp[i][0]; ......
  • 树状数组模板
    单修区查【模板】树状数组1题目描述如题,已知一个数列,你需要进行下面两种操作:将某一个数加上$x$求出某区间每一个数的和输入格式第一行包含两个正整数$n,m$,分别表示该数列数字的个数和操作的总个数。第二行包含$n$个用空格分隔的整数,其中第$i$个数字表示数列......
  • Vue 3.0 模板语法
    Vue.js使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层组件实例的数据。所有Vue.js的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。在底层的实现上,Vue将模板编译成虚拟DOM渲染函数。结合响应性系统,Vue能够智能地计算出最少需要重新渲......
  • SiteServer CMS远程模板下载getshell漏洞导致的黑SEO利用分析溯源
    前言某日中午,涉及一代理商客户网站发现异常SQ内容,要求进行溯源分析并找出根本原因。0x01初步分析通过提供的链接(www.xxx.com.cn/2023j19tPLKn2/55151),确认涉及黑帽SEO活动,通过百度搜索进一步验证也证实了这一点。0x02日志分析黑客常常在植入菠菜或非法广告的网站中设置后......
  • 模板记录
    RMQ求Lca怕考场被卡,所以临省选重新复习一下。有个性质:若\(u,v\)不成祖先和儿子关系,则\(u,v\)的\(lca\)的\(dfs\)序一定不在\(dfn_u\)到\(dfn_v\)之间,所以我们只用找到\(dfn_u\)到\(dfn_v\)之间深度最小点\(d\)的就行了,\(d\)的父亲显然是\(u,v\)的\(lca\)......
  • 平衡树学习笔记(替罪羊)
    替罪羊应该是所有平衡树中最简单的了(但这东西是真的恶心),它的主要思想是在发现子树不平衡时把子树拍平重建。首先我们考虑什么时候我们认为这个子树是不平衡的。我们可以设置一个常量\(eps\),当有一棵子树的大小超过了它父节点子树大小乘\(eps\),那么我们就可以重建这棵子树了。......