2018.09.14 洛谷P3567 [POI2014]KUR-Couriers(主席树)
传送门
简单主席树啊。
但听说有随机算法可以秒掉%%%(本蒟蒻并不会)
直接维护值域内所有数的出现次数之和。
当这个值不大于区间总长度的一半时显然不存在合法的数。
这样在主席树上二分查值就行了。
代码:
#include<bits/stdc++.h>
#define N 500005
using namespace std;
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
int n,m,tot=0,tmp,son[N*20][2],siz[N*20],rt[N],ql,qr;
inline int max(int a,int b){return a>b?a:b;}
inline void insert(int&p,int las,int l,int r,int v){
son[p=++tot][0]=son[las][0],son[p][1]=son[las][1];
if(l==r){siz[p]=siz[las]+1;return;}
int mid=l+r>>1;
if(v<=mid)insert(son[p][0],son[las][0],l,mid,v);
else insert(son[p][1],son[las][1],mid+1,r,v);
siz[p]=siz[son[p][0]]+siz[son[p][1]];
}
inline int query(int a,int b,int l,int r){
if(l==r)return l;
int mid=l+r>>1;
if(2*(siz[son[b][0]]-siz[son[a][0]])>qr-ql+1)return query(son[a][0],son[b][0],l,mid);
if(2*(siz[son[b][1]]-siz[son[a][1]])>qr-ql+1)return query(son[a][1],son[b][1],mid+1,r);
return 0;
}
int main(){
n=read(),m=read();
for(int i=1;i<=n;++i)insert(rt[i],rt[i-1],1,n,(tmp=read()));
while(m--){
ql=read(),qr=read();
printf("%d\n",query(rt[ql-1],rt[qr],1,n));
}
return 0;
}
2018.09.14 洛谷P3567 [POI2014]KUR-Couriers(主席树)的更多相关文章
- 2018.09.14 洛谷P3931 SAC E#1 - 一道难题 Tree(树形dp)
传送门 简单dp题. f[i]表示以i为根的子树被割掉的最小值. 那么有: f[i]=min(∑vf[v],dist(i,fa))" role="presentation" ...
- 2018.07.07 洛谷 P3939 数颜色(主席树)
P3939 数颜色 题目背景 大样例下发链接:http://pan.baidu.com/s/1c0LbQ2 密码:jigg 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不 ...
- 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)
洛谷题目传送门 YCB巨佬对此题有详细的讲解.%YCB%请点这里 思路分析 不能套用静态主席树的方法了.因为的\(N\)个线段树相互纠缠,一旦改了一个点,整个主席树统统都要改一遍...... 话说我真 ...
- 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]
题目传送门 任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任 ...
- 2018.09.26洛谷P1084 疫情控制(二分+倍增)
传送门 好题啊. 题目要求的最大值最小,看到这里自然想到要二分答案. 关键在于怎么检验. 显然对于每个点向根走比向叶节点更优. 因此我们二分答案之后,用倍增将每个点都向上跳到跳不动为止. 这时我们ch ...
- 2018.09.26洛谷P3957 跳房子(二分+单调队列优化dp)
传送门 表示去年考普及组的时候失了智,现在看来并不是很难啊. 直接二分答案然后单调队列优化dp检验就行了. 注意入队和出队的条件. 代码: #include<bits/stdc++.h> ...
- 2018.09.26 洛谷P2464 [SDOI2008]郁闷的小J(map+vector)
传送门 本来出题人出出来想考数据结构的. 但是我们拥有map+vector/set这样优秀的STL,因此直接用map离散化,vector存下标在里面二分找答案就行了. 代码: #include< ...
- 洛谷P3567[POI2014]KUR-Couriers(主席树+二分)
题意:给一个数列,每次询问一个区间内有没有一个数出现次数超过一半 题解: 最近比赛太多,都没时间切水题了,刚好日推了道主席树裸题,就写了一下 然后 WA80 WA80 WA0 WA90 WA80 ?? ...
- [洛谷P3567][POI2014]KUR-Couriers
题目大意:给一个数列,每次询问一个区间内有没有一个数出现次数超过一半.有,输出这个数,否则输出$0$ 题解:主席树,查询区间第$\bigg\lfloor\dfrac{len+1}{2}\bigg\rf ...
随机推荐
- leetcode66
public class Solution { public int[] PlusOne(int[] digits) { ]; < ) { digits[digits.Length - ]++; ...
- JSON.Stringify()和JSON.parse()的比较使用
1. JSON.Stringify() 将一个对象解析成字符串 <script> function myonclick() { var value = $('select option: ...
- Linux&Unix命令
Linux下: 系统操作 文件操作 防火墙 权限管理 压缩和解压 安装应用 用户管理 端口 PID 应用 start & shutdown 远程操作 异常 注意点: linux系统下内容大多用 ...
- 递归实现tree JQuery
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- TPCC-MySQL的安装与使用
Tpcc-mysql 是 percona 基于 tpcc 衍生出来的产品,专用于 mysql 基准测试,其源码放在 bazaar 上( Bazaar 是一个分布式的版本控制系统,采用 GPL 许可协议 ...
- ComputeSignature 中行支付签名报错(win7 64位系统)
在做中行加密验签的时候出现的问题.原本在XP系统下可以正常运行的,现在换了win7 64位系统就出现了这个问题,没头绪 所以发上来求各位大大支招 有什么好的解决方案.. 我的解决办法: 1.C:\Do ...
- 新手C#SQL Server使用记录2018.08.10
主键(PrimaryKey):主键就是每个数据行(记录)的唯一标识,不会有重复值的列(字段)才能当做主键.一个表可以没有主键,但是这样会很难处理表,因此一般情况表都要设置主键. 主键有两张选用策略,分 ...
- webElement.text()获取到内容为空
使用webElement.text()方法获取字符串时,有时候会获取失败--获取到的内容为空 使用 webElement.getAttribute("attributeName") ...
- CentOS7.0重置Root的密码 (忘记密码)
首先进入开启菜单,按下e键进入编辑现有的内核,如下图所示 然后滚动列表,找到ro,将它替换成rw,并加上init=/sysroot/bin/sh,最终变为如下图 然后按CTRL+X进入到单用户模式,在 ...
- vmware虚拟机桥接模式不能上网
方法/步骤 首先我的主机的有线连接是正常的,如下: 但是我的虚拟机的网络连接模式为桥接模式,但是却上不了网,如下: 我们来确认下,我的虚拟机的网络模式,如下: 设置全部都是对的,但 ...