博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ZJb417]区间众数
阅读量:6587 次
发布时间:2019-06-24

本文共 994 字,大约阅读时间需要 3 分钟。

题目大意:

  给定一个长度为$n(1\leq n\leq10^5)$的正整数序列$s(1\leq s_i\leq n)$,对于$m(1\leq m\leq10^)$次询问$l,r$,每次求区间$[s_l,\ldots,s_r]$中,众数出现的次数以及众数的个数。

思路:

  莫队。
  对于询问$l,r$,维护每个数$s_i$出现的次数$cnt1[i]$以及每个$cnt1[i]$出现的次数$cnt2[i]$。

1 #include
2 #include
3 #include
4 #include
5 inline int getint() { 6 register char ch; 7 while(!isdigit(ch=getchar())); 8 register int x=ch^'0'; 9 while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');10 return x;11 }12 const int N=100001,M=1000000;13 int a[N],belong[M],cnt1[N],cnt2[N],tmp,ans1[M],ans2[M];14 struct Query {15 int l,r,id;16 bool operator < (const Query &another) const {17 if(belong[l]==belong[another.l]) return belong[r]
q[i].l) ins(--l);46 while(r
q[i].r) del(r--);48 ans1[q[i].id]=tmp;49 ans2[q[i].id]=cnt2[tmp];50 }51 for(register int i=0;i

 

转载于:https://www.cnblogs.com/skylee03/p/8423363.html

你可能感兴趣的文章
1224 - 搞定 iText 识别文字后翻译
查看>>
《iOS 8开发指南(第2版)》——第6章,第6.3节在Xcode中实现MVC
查看>>
机器人快速崛起:5年内消失510万工作岗位
查看>>
内存泄漏和内存溢出的区别
查看>>
pageinspect分析btree索引结构
查看>>
Jtable Auto Resize Column
查看>>
如何友好地展示findbugs分析报告
查看>>
postgresql 时间类型和相关函数
查看>>
JavaScript权威设计--JavaScript语言核心(简要学习笔记一)
查看>>
”一个封锁操作被对 WSACancelBlockingCall 的调用中断“。解决办法
查看>>
【原创】sysbench 使用总结
查看>>
android:theme决定AlertDialog的背景颜色
查看>>
递归练习(C语言)
查看>>
线性表的链式表示和实现
查看>>
由&quot;缓存&quot;到&quot;Memcached分布式缓存&quot;
查看>>
(一四〇)访问控制:protected
查看>>
几个单词
查看>>
关于vue项目本地运行以后,输入本机ip不能访问的问题
查看>>
idea找不到或无法加载主类
查看>>
我人生中的第一场Java面试
查看>>