中邪 下载,网游之幻世历险,潇潇雨霖铃
/* * @author: wxyww * @date: 2018-12-17 20:07:20 * @last modified time: 2018-12-17 20:40:37 */ #include<cstdio> #include<iostream> #include<algorithm> #include<cstdlib> #include<cmath> #include<ctime> #include<bitset> #include<map> using namespace std; typedef long long ll; const int n = 200000 + 10; map<int,int>ma; ll read() { ll x=0,f=1;char c=getchar(); while(c<'0'||c>'9') { if(c=='-') f=-1; c=getchar(); } while(c>='0'&&c<='9') { x=x*10+c-'0'; c=getchar(); } return x*f; } int a[n],cnt[n],ls[n],anss[n]; int ans,l,r,belong[n],t[n]; struct node { int id,l,r; }q[n]; bool cmp(node x,node y) { return belong[x.l] == belong[y.l] ? x.r < y.r : x.l < y.l; } void update(int pos,int c) { t[cnt[a[pos]]]--; if(t[cnt[a[pos]]] == 0 && ans == cnt[a[pos]]) { while(t[ans] == 0 && ans) ans--; } cnt[a[pos]] += c; t[cnt[a[pos]]]++; if(cnt[a[pos]] > ans) ans = cnt[a[pos]]; } int main() { int n = read(),m = read(); int blsiz = sqrt(n); for(int i = 1;i <= n;++i) ls[i] = a[i] = read(),belong[i] = (i - 1) / blsiz + 1; int lsjs = 0; sort(ls + 1,ls + n + 1); ma[ls[1]] = ++lsjs; for(int i = 2;i <= n;++i) if(ls[i] != ls[i - 1]) ma[ls[i]] = ++lsjs; for(int i = 1;i <= n;++i) a[i] = ma[a[i]]; for(int i = 1;i <= m;++i) q[i].l = read(),q[i].r = read(),q[i].id = i; sort(q + 1,q + n + 1,cmp); for(int i = 1;i <= m;++i) { while(l > q[i].l) update(--l,1); while(r < q[i].r) update(++r,1); while(l < q[i].l) update(l++,-1); while(r > q[i].r) update(r--,-1); anss[q[i].id] = ans; } for(int i = 1;i <= m;++i) printf("%d\n",-anss[i]); return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论