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 ...
随机推荐
- android中配置文件property的用途以及使用<转>
1.首先在源代码根目录(src下)下创建一个名为netconfig.properties的文件(也可以在其他目录下). 2.打开netconfig.properties文件,在该文件中添加下列代码. ...
- WDA-FPM-1-Roadmap(GAF)
转载:https://www.cnblogs.com/sapSB/p/10077564.html 首先要有个简单的认识: 1.FPM支持的几种UI配置界面接口: Object Instance Flo ...
- Others-Goldengate 数据同步
GoldenGate 是一家创建于1995年的美国公司,开发总部设在旧金山,在北美,欧洲和亚洲(包括新加坡.印度.澳大利亚)设有支持中心. 公司名称 GoldenGate 总部地点 旧金山 成立时间 ...
- Shell常用命令find、grep总结
一.find 命令 find 命令的常用形式可以简化为 find [path...][expression] path:find 命令查找的目录路径,其中 ./ 表示当前目录,/ 表示系统根目录 ex ...
- 一个取消事件的简单js例子(事件冒泡与取消默认行为)
先上代码: <div id='outer' onclick='alert("我是outer")'> <div id="middle" oncl ...
- delphi XE3解析JSON数据
测试数据如下: Memo1.text中的数据: { "date":"周二(今天, 实时:12℃)", "dayPictureUrl":&qu ...
- Ansible Playbook Roles and Include Statements
介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...
- nat 类型及打洞原理
nat 类型分4种 1.全锥形 full cone A 与 主机B交互,nat转换 A的内部地址及端口为 ip1 port1,ip1和port1为对外地址,任何机器能访问. 2.ip 受限制(对B而 ...
- IIS中的MIME类型设置
https://www.cnblogs.com/David-Young/p/5323949.html
- 第六章 图(a)概述