bzoj3585: mex
来源:互联网 发布:手机 惯性导航算法 编辑:程序博客网 时间:2024/04/25 02:11
传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3585
思路:又是一道莫队+分块。
对权值分块,大于n的直接不用管。
#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>const int maxn=200010,maxb=450;using namespace std;struct que{int l,r,id;}q[maxn];int n,m,sz,cnt,a[maxn],s[maxn],bel[maxn],l[maxb],r[maxb],bloans[maxn],ans[maxn];bool cmp(que a,que b){return bel[a.l]==bel[b.l]?a.r<b.r:bel[a.l]<bel[b.l];}void add(int x){if (x>n) return;if (!s[x]++) bloans[bel[x]]++;}void del(int x){if (x>n) return;if (!--s[x]) bloans[bel[x]]--;}int query(){int i;if (!s[0]) return 0;for (i=1;i<=cnt;i++)if (bloans[i]!=r[i]-l[i]+1) break;for (int j=l[i];j<=r[i];j++)if (!s[j]) return j;}void work(){for (int i=1,l=1,r=0;i<=m;i++){for (;r<q[i].r;r++) add(a[r+1]);for (;r>q[i].r;r--) del(a[r]);for (;l<q[i].l;l++) del(a[l]);for (;l>q[i].l;l--) add(a[l-1]);ans[q[i].id]=query();}for (int i=1;i<=m;i++) printf("%d\n",ans[i]);}int main(){scanf("%d%d",&n,&m),sz=sqrt(n),cnt=n/sz+(n%sz>0);for (int i=1;i<=n;i++) bel[i]=(i-1)/sz+1;for (int i=1;i<=n;i++){r[bel[i]]=i;if (!l[bel[i]]) l[bel[i]]=i;}for (int i=1;i<=n;i++) scanf("%d",&a[i]),a[i];for (int i=1;i<=m;i++) scanf("%d%d",&q[i].l,&q[i].r),q[i].id=i;sort(q+1,q+1+m,cmp),work();return 0;}
0 0
- bzoj3585: mex
- 【BZOJ3585】mex
- [bzoj3585]mex
- bzoj3585 mex
- bzoj3585: mex
- bzoj3585: mex
- 【bzoj3585】mex 莫队+分块
- [莫队] [分块] [BZOJ3585] mex
- [BZOJ3339] Rmq Problem&&[BZOJ3585] mex
- bzoj3585 mex(离线+线段树)
- 【bzoj3585】mex 分块+莫队算法
- bzoj3585 mex 分块+莫队算法
- BZOJ3585: mex(权值分块+莫队)
- [BZOJ3585][清华集训2014]mex 主席树
- 【BZOJ3585】mex【离线】【线段树】【mex】【离散化】
- [BZOJ3585]mex(离线+离散化+线段树)
- mex
- Mex
- Android自定义ImageView实现图片缩放滑动,双击放大缩小,多点触控缩放
- light oj 1110 LCS 记录路径
- HDU 5371 Hotaru's problem(Manacher 求一序列三部分回文)
- hadoop远程调试
- System.currentTimeMillis()计算方式与时间的单位转换
- bzoj3585: mex
- Highways POJ 2485【Prim】
- oracle授权时“with admin option”与“with grant option”的区别
- C++ 对象数组
- 我的VIM配置(ubuntu)语法高亮 自动补全
- SQL Server 2008连接字符串写法大全
- Oracle EBS Interface/API(3)--采购订单审批
- UIView中常见的方法总结
- C++笔试总结-面试笔试常考题型(一)指针-引用-宏定义-sizeof