当前位置: 首页 > news >正文

【数据结构】树状数组

在线求第k大数/中位数
树状数组+二分 nlognlogn
KiKi’s K-Number

#include<iostream>
using namespace std;const int N=100010;
int tr[N];
int m;int lowbit(int x){return x&(-x);}
int query(int x){int res=0;for(int i=x;i>0;i-=lowbit(i)){res+=tr[i];}return res;
}
void add(int x,int k){for(int i=x;i<N;i+=lowbit(i)){tr[i]+=k;}
}bool check(int mid,int k){int k1=query(mid);if(k1>=k)return 1;return 0;
}int main(){std::ios::sync_with_stdio(false);
int m;while(cin>>m){for(int i=0;i<N;i++)tr[i]=0;while (m--){int op;cin>>op;if(op==0){int e;cin>>e;add(e,1);}else if(op==1){int e;cin>>e;int k1=query(e-1);int k2=query(e);if(k1==k2){cout<<"No Elment!\n";}else add(e,-1);}else {int a,k;cin>>a>>k;int k1=query(a);k+=k1;int l=0;int r=100010;while (l<r){int mid=(l+r)>>1;if(check(mid,k))r=mid;else l=mid+1;}if(l==0||r==100010)cout<<"Not Find!\n";else cout<<l<<"\n";}}}}
http://www.lryc.cn/news/594420.html

相关文章:

  • 网安-文件上传-upload-labs
  • 深入理解MyBatis:总结核心概念
  • Mermaid 语法
  • SpringBoot集成Skywalking链路跟踪
  • 44.sentinel授权规则
  • Dev-C++——winAPI贪吃蛇小游戏
  • codepen使用
  • 网鼎杯2020青龙组notes复现
  • AG32:解锁MCU+FPGA应用新姿势,功能与实战全解析
  • 《杜甫传》读书笔记与经典摘要(一)
  • 桑科草原一景
  • RabbitMQ:解锁高效消息传递的密码[特殊字符]
  • C++STL之stack和queue
  • 【pandoc实践】如何将wordpress文章批量导出为Markdown格式
  • Spring Boot 自动装配用法
  • 从0开始学linux韦东山教程Linux驱动入门实验班(4)
  • Spring Boot 一个注解搞定「加密 + 解密 + 签名 + 验签」
  • 零基础 “入坑” Java--- 十三、再谈类和接口
  • KOSMOS-2: 将多模态大型语言模型与世界对接
  • 算法训练营day25 回溯算法④ 补充联系题目 332.重新安排行程、51. N皇后、37. 解数独
  • PID控制原理分析及应用(稳态误差详细分析)(一)
  • 30天打牢数模基础-卷积神经网络讲解
  • STM32-第八节-TIM定时器-4(编码器接口)
  • 2025 年科技革命时刻表:四大关键节点将如何重塑未来?
  • 【高等数学】第四章 不定积分——第五节 积分表的使用
  • 【实战1】手写字识别 Pytoch(更新中)
  • RTC外设详解
  • Vuex 核心知识详解:Vue2Vue3 状态管理指南
  • Qt--Widget类对象的构造函数分析
  • 【vue-7】Vue3 响应式数据声明:深入理解 reactive()