莫队常数太大,求柩!

P2709 小B的询问

@[zhaohanwen](/user/767660) @[OcTar](/user/594916) @[mashduihca](/user/494183)
by ReturnOrContinue @ 2023-11-15 18:28:47


@[ReturnOrContinue](/user/767588) 你不是过了吗
by mashduihca @ 2023-11-15 18:35:06


@[ReturnOrContinue](/user/767588) /bx
by OcTar @ 2023-11-15 18:35:39


@[mashduihca](/user/494183) 吸了氧平均600ms??
by ReturnOrContinue @ 2023-11-15 18:37:05


@[OcTar](/user/594916) /hs
by ReturnOrContinue @ 2023-11-15 18:37:26


@[ReturnOrContinue](/user/767588) 你码呢
by diqiuyi @ 2023-11-15 18:47:53


@[ReturnOrContinue](/user/767588) 我开完隐了看不了你代码-
by mashduihca @ 2023-11-15 18:48:48


```cpp #include <bits/stdc++.h> #define op return #define AK 0 #define IOI ; #define uint unsigned int #define ll long long #define ld long double #define ull unsigned ll #define lll __int128 #define pii pair<int,int> #define pip pair<int,pii> #define ppp pair<pii,pii> #define deb cerr<<"op AK IOI\n" #define tostring(a) #a #define cono(a,b) a##b #define psa(i) (i=-~(i)) #define range(i) (-~(i)) #define mid (l+r>>1) #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; inline ll read() { ll s=0;int w=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();} while(ch>='0'&&ch<='9')s=(s<<1)+(s<<3)+(ch^'0'),ch=getchar(); return s*w; } const int N=5e4+10; uint ans[N],n,m,k,len,a[N],idx[N],cnt[N],cur; struct Node { int l,r,id; bool operator <(const Node &p)const { if(idx[l]==idx[p.l])return l<p.l; if(idx[l]&1)return r<p.r; return r>p.r; } }q[N]; void build() { len=sqrt(n); for(int i=1;i<=n;psa(i))idx[i]=(i-1)/len+1; } inline void add(int p) { cur-=cnt[a[p]]*cnt[a[p]]; psa(cnt[a[p]]); cur+=cnt[a[p]]*cnt[a[p]]; } inline void del(int p) { cur-=cnt[a[p]]*cnt[a[p]]; --cnt[a[p]]; cur+=cnt[a[p]]*cnt[a[p]]; } int main() { n=read(),m=read(),k=read(); for(int i=1;i<=n;psa(i))a[i]=read(); build(); for(int i=1;i<=m;psa(i)) q[i].l=read(),q[i].r=read(),q[i].id=i; sort(q+1,q+1+m); for(int i=1,l=1,r=0;i<=m;psa(i)) { while(l<q[i].l)del(l++); while(r>q[i].r)del(r--); while(l>q[i].l)add(--l); while(r<q[i].r)add(++r); ans[q[i].id]=cur; } for(int i=1;i<=m;psa(i))printf("%u\n",ans[i]); op AK IOI } ```
by ReturnOrContinue @ 2023-11-15 18:57:50


@[ReturnOrContinue](/user/767588) 额,你在写一种很新的排序..
by mashduihca @ 2023-11-15 19:04:50


@[mashduihca](/user/494183) 现学的,叫什么奇偶性排序?(大雾
by ReturnOrContinue @ 2023-11-15 19:07:15


| 下一页