BZOJ_2223_[Coci 2009]PATULJCI_主席树
BZOJ_2223_[Coci 2009]PATULJCI_主席树
Description
Input
10 3 1 2 1 2 1 2 3 2 3 3 8 1 2 1 3 1 4 1 5 2 5 2 6 6 9 7 10
Output
yes 1
no
yes 1
no
yes 2
no
yes 3
区间众数,可以用主席树求。
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- using namespace std;
- #define N 300050
- int t[N*20],ls[N*20],rs[N*20],n,m;
- int root[N],a[N],tot;
- struct A{
- int num,id,v;
- }d[N];
- bool cmp1(const A &x,const A &y){ return x.num<y.num; }
- bool cmp2(const A &x,const A &y){ return x.id<y.id; }
- void insert(int x,int &y,int l,int r,int val){
- y=++tot;
- if(l==r) { t[y] = t[x] + 1; return ; }
- int mid=l+r>>1;
- if(val<=mid) rs[y]=rs[x],insert(ls[x],ls[y],l,mid,val);
- else ls[y]=ls[x],insert(rs[x],rs[y],mid+1,r,val);
- t[y]=t[ls[y]]+t[rs[y]];
- }
- int query(int x,int y,int l,int r,int len){
- if(l==r) return a[l];
- int mid=l+r>>1,sizls=t[ls[y]]-t[ls[x]],sizrs=t[rs[y]]-t[rs[x]];
- if(sizls>len/2) return query(ls[x],ls[y],l,mid,len);
- if(sizrs>len/2) return query(rs[x],rs[y],mid+1,r,len);
- return 0;
- }
- int main()
- {
- scanf("%d%*d",&n);
- int i,x,y,j;
- for(i=1;i<=n;i++) scanf("%d",&d[i].num),d[i].id=i;
- sort(d+1,d+n+1,cmp1);d[0].num=20003535;
- for(i=1,j=0;i<=n;i++) { if(d[i].num!=d[i-1].num)j++;d[i].v=j;a[j]=d[i].num; }
- sort(d+1,d+n+1,cmp2);
- for(i=1;i<=n;i++) insert(root[i-1],root[i],1,n,d[i].v);
- for(scanf("%d",&m),i=1;i<=m;i++) {
- scanf("%d%d",&x,&y);
- int tmp = query(root[x-1],root[y],1,n,y-x+1);
- if(tmp) {
- printf("yes %d\n",tmp);
- }else puts("no");
- }
- }
BZOJ_2223_[Coci 2009]PATULJCI_主席树的更多相关文章
- BZOJ2223[Coci 2009]PATULJCI——主席树
题目描述 输入 先输入一个数n,然后一个数表示这n个数中最大的是多少,接下来一行n个数.然后一个数m,最后m行询问每次两个数l,r. 输出 no或者yes+这个数 样例输入 10 3 1 2 1 2 ...
- 【bzoj2223】[Coci 2009]PATULJCI 主席树
题目描述 样例输入 10 3 1 2 1 2 1 2 3 2 3 3 8 1 2 1 3 1 4 1 5 2 5 2 6 6 9 7 10 样例输出 no yes 1 no yes 1 no yes ...
- [bzoj3524==bzoj2223][Poi2014]Couriers/[Coci 2009]PATULJCI——主席树+权值线段树
题目大意 给定一个大小为n,每个数的大小均在[1,c]之间的数列,你需要回答m个询问,其中第i个询问形如\((l_i, r_i)\),你需要回答是否存在一个数使得它在区间\([l_i,r_i]\)中出 ...
- BZOJ 2223 [Coci 2009]PATULJCI | 主席树练习 (好像是个权限题啊)
题目: 给个序列,问[l,r]区间内是否存在x>(r-l+1)>>1 题解: 好像大家都觉得这个题比较简单,没人写题解啊 先说BZOJ样例的格式应该是,第二个数是序列中数的范围(就是 ...
- BZOJ 2223: [Coci 2009]PATULJCI 主席树
Code: #include<bits/stdc++.h> #define maxn 300001 #define mid ((l+r)>>1) using namespace ...
- 主席树||可持久化线段树||BZOJ 3524: [Poi2014]Couriers||BZOJ 2223: [Coci 2009]PATULJCI||Luogu P3567 [POI2014]KUR-Couriers
题目:[POI2014]KUR-Couriers 题解: 要求出现次数大于(R-L+1)/2的数,这样的数最多只有一个.我们对序列做主席树,每个节点记录出现的次数和(sum).(这里忽略版本差值问题) ...
- 2018.09.30 bzoj2223: [Coci 2009]PATULJCI(主席树)
传送门 主席树经典题目. 直接利用主席树差分的思想判断区间中数的个数是否合法然后决定左走右走就行了. 实际上跟bzoj3524是同一道题. 代码: #include<bits/stdc++.h& ...
- 【bzoj5178】[Jsoi2011]棒棒糖 主席树
题目描述 Coffee的世界里也是有棒棒糖卖的,Coffee买了N(1≤N≤50000)只连着的.这N只棒棒糖包裹在小塑料袋中,排成一列,相邻的两只棒棒糖的塑料袋是接起来的.为了方便,我们把棒棒糖从左 ...
- HDU 2852 主席树
KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
随机推荐
- 4 sum
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...
- Spring3 MVC
一.前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring3 MVC结构简单,应了那句话简单就是美,而 ...
- 模拟IC芯片设计开发的流程
模拟IC芯片设计开发的流程 IC的设计,模拟和数字, 还有混合IC, 在设计方法, 注意点, 工具等有明显的区别, 我主要以模拟无线接收IC系统设计为例说明. 一个IC芯片的设计开发大致包括如下步骤. ...
- 6.3 Query 语句对系统性能的影响
我们重点分析实现同样功能的不同SQL 语句在性能方面会产生较大的差异的根本原因,并通过一个较为典型的示例来对我们的分析做出相应的验证. 为什么返回完全相同结果集的不同SQL 语句,在执行性能方面存在差 ...
- access按钮事件在子窗体打开窗体或报表
Private Sub Com1_Click()Me.win.SourceObject = "窗体1"End Sub Private Sub Com2_Click()Me.win. ...
- IDEA: 遇到问题Error during artifact deployment. See server log for details解决方法
1.检查tomcat是否配置正确. 2.检查配置文件是否配置正确,web.xml.等. 3. 4.
- 【转】H.264RTP封包原理
原文地址:H.264RTP封包原理 作者:cnp11 1. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面 ...
- Partitions - Partition Storage Modes and Processing-MOLAP、ROLAP、HOLAP
https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models-olap-logical-cube-obj ...
- DjangoRestFramework的外键反向关系序列化的一个问题
先用文档中的样例: Models定义: class Album(models.Model): album_name = models.CharField(max_length=100) artist ...
- Dubbo配置引发的一个问题--- Duplicate spring bean id
1.原因 因项目业务需要,要调用RPC框架,项目原本已经依赖了很多RPC接口需要启动时加载,所以准备做成启动时不预加载. 就是在配置的时候加上check=false. 官方文档解释的作用,就是Dubb ...