正解:主席树/莫队

解题报告:

传送门!

这题好像就是个主席树板子题的样子,,,?

毕竟,主席树的最基本的功能就是,维护一段区间内某个数字的个数

但是毕竟是刚get到主席树,然后之前做的一直是第k大,这个是维护区间内数字个数,题目类型不一样,所以还是积累一下这个题型和对应的方法QAQ

顺便也水一发题解

所以还是写下这题

首先不难想到对于[l,r]的点直接把r的树和l-1的树做差就可以得到

这样现在就相当于是得到了一棵线段树

那肯定就是维护这个区间的所有数字的出现次数(,,,我发现我这里出现了两个意义不同的区间,星趴我后面解释一下)

显然出现的次数总和sum是已知不变的,不可能存在l和r都>=sum/2(,,,哦其实存在极端情况的然而不要在意这种细节,,,差不多做法QAQ!)

所以每次就往出现次数>=sum/2的区间跑,如果跑到叶子节点了,就说明存在,如果跑着跑着发现,两个区间都不满足>=sum/2,说明GG了,就不存在

然后就做完辣!

然后说下两个区间

第一个是最前面说,"首先不难想到对于[l,r]的点直接把r的树和l-1的树做差就可以得到",这里指的是[l,r]这个询问

第二个是第三行"那肯定就是维护这个区间的所有数字的出现次数"以及之后所有的关于区间的说法,指的都是序列上的区间

代码等下放QAQ

另外说下!这题还有个!莫队做法!虽然复杂度不对!但是能过去!但是我不想打了反正莫队基本上实现都很简单,懒得写了QAQ

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define rg register
#define gc getchar()
#define rp(i,x,y) for(rg int i=x;i<=y;++i) const int N=;
int n,m,a[N],st[N],tot,nod_cnt,rt[N],r,l;
struct sgtr{int l,r,ls,rs,sz,name;}tr[N<<]; il int read()
{
rg char ch=gc;rg int x=;rg bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il void build(int x,int l,int r)
{
++nod_cnt;tr[x].l=l,tr[x].r=r;tr[x].name=l;
if(l==r)return;
tr[x].ls=nod_cnt+;build(tr[x].ls,l,(l+r)>>);tr[x].rs=nod_cnt+;build(tr[x].rs,((l+r)>>)+,r);return;
}
il void modify(int x,int dat)
{
++nod_cnt;tr[nod_cnt]=tr[x];++tr[nod_cnt].sz;
if(tr[nod_cnt].l==tr[nod_cnt].r)return;
int mid=(tr[nod_cnt].l+tr[nod_cnt].r)>>;
if(dat<=mid){tr[nod_cnt].ls=nod_cnt+;modify(tr[x].ls,dat);}else{tr[nod_cnt].rs=nod_cnt+;modify(tr[x].rs,dat);}
}
il int query(int nw1,int nw2,int len)
{
if(tr[nw1].l==tr[nw1].r)return tr[nw1].name;
int tmp1=-;
if((tr[tr[nw2].ls].sz-tr[tr[nw1].ls].sz)*>len)tmp1=query(tr[nw1].ls,tr[nw2].ls,len);
if(tmp1!=-)return tmp1;
if((tr[tr[nw2].rs].sz-tr[tr[nw1].rs].sz)*>len)tmp1=query(tr[nw1].rs,tr[nw2].rs,len);
return tmp1;
} int main()
{
// freopen("kc.in","r",stdin);freopen("kc.out","w",stdout);
n=read();m=read();rp(i,,n)a[i]=st[i]=read();sort(st+,st++n);tot=unique(st+,st++n)-st-;rp(i,,n)a[i]=lower_bound(st+,st++tot,a[i])-st;
rt[]=;build(,,tot);
rp(i,,n){rt[i]=nod_cnt+;modify(rt[i-],a[i]);}
rp(i,,m){l=read(),r=read();int tmp=query(rt[l-],rt[r],r-l+);if(tmp==-)printf("0\n");else printf("%d\n",st[tmp]);}
return ;
}

然后这个是主席树的做法QAQ

洛谷P3567 KUR-Couriers [POI2014] 主席树/莫队的更多相关文章

  1. 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)

    洛谷题目传送门 YCB巨佬对此题有详细的讲解.%YCB%请点这里 思路分析 不能套用静态主席树的方法了.因为的\(N\)个线段树相互纠缠,一旦改了一个点,整个主席树统统都要改一遍...... 话说我真 ...

  2. 洛谷P4587 神秘数 [FJOI2016] 主席树

    正解:主席树 解题报告: 先放下传送门QAQ 首先可以先思考如果只有一组询问,怎么解决 可以这么想,最开始一个数也麻油的时候能表示的最大的数是0嘛 然后先排个序,按顺序每次新加入一个数x,设加入这个数 ...

  3. 2018.07.07 洛谷 P3939 数颜色(主席树)

    P3939 数颜色 题目背景 大样例下发链接:http://pan.baidu.com/s/1c0LbQ2 密码:jigg 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不 ...

  4. 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]

    题目传送门 任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任 ...

  5. 洛谷P4559 [JSOI2018]列队(主席树)

    题面 传送门 题解 首先考虑一个贪心,我们把所有的人按\(a_i\)排个序,那么排序后的第一个人到\(k\),第二个人到\(k+1\),...,第\(i\)个人到\(k+i-1\),易证这样一定是最优 ...

  6. 洛谷P3293 [SCOI2016]美味(主席树)

    传送门 据说这题做法叫做可持久化trie树?(然而我并不会) 首先考虑一下贪心,从高位到低位枚举,如果能选1肯定比选0优 假设已经处理到了$b$的第$i$位,为1(为0的话同理就不说了) 那么只有当$ ...

  7. 洛谷$P$3293 美味 $[SCOI2016]$ 主席树

    正解:主席树 解题报告: 传送门! 挺有趣的,至少我不会$QAQ$(虽然我不会的多了去了$QAQ$ 如果没有这个所谓美味度限制可以直接线段树水过去嘛$QwQ$ 然后现在问的是个异或运算后的结果,关于异 ...

  8. 洛谷$P$3241 开店 $[HNOI2015]$ 主席树/点分治

    正解:主席树/动态点分治 解题报告: 传送门! $umm$淀粉质的话要是动态的我还不会$QAQ$,,,所以先写下主席树的题解昂$QwQ$ 题目大意是说,给定一棵树,树上每个点都有个值,然后有若干个询问 ...

  9. 洛谷 P4755 - Beautiful Pair(主席树+分治+启发式优化)

    题面传送门 wssb,我紫菜 看到这类与最大值统计有关的问题可以很自然地想到分治,考虑对 \([l,r]\) 进行分治,求出对于所有 \(l\le x\le y\le r\) 的点对 \((x,y)\ ...

随机推荐

  1. Mysql系列六:(Mycat分片路由原理、Mycat常用分片规则及对应源码介绍)

    一.Mycat分片路由原理 我们先来看下面的一个SQL在Mycat里面是如何执行的: , ); 有3个分片dn1,dn2,dn3, id=5000001这条数据在dn2上,id=10000001这条数 ...

  2. CentOS安装python-pip

    在使用Python时,需要导入一些第三方工具包,一般情况下,鼓励使用pip来安装管理这些第三方的包,这里我们来看一下如何在CentOS 6.4上安装Python-pip.   第一步,下载python ...

  3. How to set asp.net Identity cookies expires time

    If IsPersistent property of AuthenticationProperties is set to false, then the cookie expiration tim ...

  4. JdbcTemplate in()传参

    1. 实体类 import java.util.List; public class Param { private List<String> names; private List< ...

  5. 正则表达式/(^\s*)|(\s*$)/g意思

    包含以空格.回车符等字符开头 或者 空格.回车符等字符结尾 的字符串,可过滤出所有空格.回车符的字符

  6. maven子项目的springboot配置

    正常来说一个maven子项目的parent是父项目,而不是直接继承,这时候就需要改下配置 默认生成的代码入下: <?xml version="1.0" encoding=&q ...

  7. Spring学习笔记--代理

    静态代理 1.静态代理的角色分析(UML画图推荐使用StarUML软件) 抽象角色---一般使用接口或者抽象类来实现. 真实角色---被代理的角色. 代理角色---代理真实角色—代理真是角色后一般会做 ...

  8. 纯JS实现图片预览与等比例缩放和居中

    最近做项目时有一个需求,广告位图片上传时要预览,并且要等比例缩放和居中.已经保存的广告位图片显示时也要等比例缩放和居中.我使用了下面的代码实现,不过可能有一些小问题. <!DOCTYPE HTM ...

  9. IIS 未能加载文件或程序集“System.Web.Mvc, Version=5.2

    MVC配置不正确 1. 应用程序池配置成经典模式, 2. 程序池高级设置32位模式. 3.MVC目录设置不网站根目录 ,不要设置为VIEWS目录下.

  10. [No0000117]visual studio 调试WebForm 显示 HTTP Error 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。

    调试界面如下: 解决办法1:右键设置起始页. 影响文件: 解决方案2:Web.config中添加默认页面配置: <system.webServer> <defaultDocument ...