主席树 模板题 luogu([POI2014]KUR-Couriers)
求区间内是否有个数大于二分之一的数,有的话输出这个数,没有的话输出0.
在询问的时候,如果左边有sum大于这个limit,就可以继续求,如果右边有sum大于limit 也递归,
如果都不行,返回 0;
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
const int maxn=5e5+;
int Root[maxn],cnt;
struct node
{
int ln,rn,sum;
}tree[maxn*];
void add(int &x,int y,int l,int r,int num)
{
tree[++cnt]=tree[y];tree[cnt].sum++;x=cnt;
if(l==r) return;
int mid=l+r>>;
if(num<=mid) add(tree[x].ln,tree[y].ln,l,mid,num);
else add(tree[x].rn,tree[y].rn,mid+,r,num);
}
int query(int x,int y,int l,int r,int limit)
{
if(l==r){
if(tree[x].sum-tree[y].sum>=limit) return l;
else return ;
}
int left1=tree[x].ln,left2=tree[y].ln;
int right1=tree[x].rn,right2=tree[y].rn;
int mid=l+r>>;
if(tree[left1].sum-tree[left2].sum>=limit){
return query(left1,left2,l,mid,limit);
}
else if(tree[right1].sum-tree[right2].sum>=limit){
return query(right1,right2,mid+,r,limit);
}
else return ;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
int tmp;
scanf("%d",&tmp);
add(Root[i],Root[i-],,n,tmp);
}
for(int i=;i<=m;i++){
int l,r;
scanf("%d%d",&l,&r);
int limit=(r-l+)/+;
printf("%d\n",query(Root[r],Root[l-],,n,limit));
}
return ;
}
主席树 模板题 luogu([POI2014]KUR-Couriers)的更多相关文章
- 【POJ 2104】 K-th Number 主席树模板题
达神主席树讲解传送门:http://blog.csdn.net/dad3zz/article/details/50638026 2016-02-23:真的是模板题诶,主席树模板水过.今天新校网不好,没 ...
- 主席树:POJ2104 K-th Number (主席树模板题)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 44952 Accepted: 14951 Ca ...
- poj2104 主席树模板题
题意 给出n个数字组成的数字序列,有m组询问.每次询问包含三个数字l,r,k.对于每个询问输出序列区间[l,r]中第k大的数字. 分析 这是主席树的模板题,套板子就可以 #include <cs ...
- 【BZOJ 1901】【Zju 2112】 Dynamic Rankings 动态K值 树状数组套主席树模板题
达神题解传送门:http://blog.csdn.net/dad3zz/article/details/50638360 说一下我对这个模板的理解: 看到这个方法很容易不知所措,因为动态K值需要套树状 ...
- SPOJ MKTHNUM & POJ 2104 - K-th Number - [主席树模板题]
题目链接:http://poj.org/problem?id=2104 Description You are working for Macrohard company in data struct ...
- POJ 2104 K-th Number(主席树模板题)
http://poj.org/problem?id=2104 题意:求区间$[l,r]$的第k小. 思路:主席树不好理解啊,简单叙述一下吧. 主席树就是由多棵线段树组成的,对于数组$a[1,2...n ...
- hdu2665(主席树模板题)
hdu2665 题意 求区间第 k 小. 分析 参考 这类题目做法挺多的,例如 划分树. 这里使用主席树再写一发,不得不说主席树相比而言要好写的多,比起普通线段树,主席树就是复用了线段树共有的信息. ...
- POJ 2104 主席树模板题
#include <iostream> #include <cstdio> #include <algorithm> int const maxn = 200010 ...
- POJ-2104-K-th Number(区间第K大+主席树模板题)
Description You are working for Macrohard company in data structures department. After failing your ...
随机推荐
- TensorFlow入门(矩阵基础)
1.placeholder 占位符 可以通过run方法传入值 测试代码如下: # encoding:utf-8 import tensorflow as tf # placeholder 占位符 可以 ...
- c#从前台界面找后台方法
比如你新接触一个项目 项目别人已经写的差不多了 你对项目一无所知,别人安排给你活 怎么最快速度找到你要干的活对应的东西 以谷歌浏览器为例 一个项目你要修改 库存信息列表 右键检查或者F12 找 ...
- webpack如何编译ES6打包
前言:随着ES的普及我们越来越多的开始使用ES6的语法了,当然也随着mvvm框架的流行少不了js模块化,那js模块化又有那些呢 在很早的时候大家都用的命名空间,现在也有人用(库名.类别名.方法名) 后 ...
- Docker最全教程——从理论到实战(十四)
本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...
- ANDROID开发之问题积累及解决方案(四)
首先贴出问题类型: 程序无法启动,查看logcat,提示如下信息: W/dalvikvm(679): PR_CAPBSET_DROP 32 failed: Invalid argument. Plea ...
- STL初学
标准模板库STL初学 线性数据结构 vector 一维向量,相当于数组 list 链表 map 映射,提供(Key,Value)式操作,相当于哈希表 string char字符串 queue 队列,先 ...
- 831. KMP字符串(模板)
给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字. 模板串P在模式串S中多次作为子串出现. 求出模板串P在模式串S中所有出现的位置的起始下标. 输入格式 第一行输入整 ...
- Django | pycharm 提示 unresolved attribute referene 'objects' for class 'xxxx'
objects高亮,提示信息为unresolved attribute referene 'objects' for class 'BookInfo' 当前情况是pycharm没有识别到objects ...
- 【Redis运行状态下切换RDB备份至AOF备份】
"redis持久化方式有哪些?又有何区别? rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能. aof:以追加的方式记录redis操作日志的文件,可最大程 ...
- webrtc vp8与h264 sdp文件解读
参考地址:https://blog.csdn.net/zhangjikuan/article/details/27367437, https://www.cnblogs.com/idignew/p/7 ...