日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P4396 [AHOI2013]作业

發(fā)布時間:2023/12/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P4396 [AHOI2013]作业 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

P4396 [AHOI2013]作業(yè)

題目描述

詳見:P4396?[AHOI2013]作業(yè)

solution

莫隊+樹狀數(shù)組的裸題(莫隊+分塊,CDQ分治都可以,莫隊+線段樹大概需要卡常)。

時間復雜度? ?

Code

#include<bits/stdc++.h> using namespace std; const int MAXN=2e5+50;inline int read() {int f=1,x=0; char c=getchar();while (c<'0'||c>'9') { if (c=='-') f=-1; c=getchar(); }while (c>='0'&&c<='9') { x=(x<<3)+(x<<1)+(c^48); c=getchar(); }return x*f; }int n,m,Size,Ans1[MAXN],Ans2[MAXN],a[MAXN],cnt[MAXN]; struct pnode{int l,r,a,b,id,x; } p[MAXN]; struct Tree_Array {int tree[MAXN<<1];int lowbit(int x){ return x&(-x); }void change(int x,int y) { for (;x<=n;x+=lowbit(x)) tree[x]+=y; }int query(int x){ int ans=0; for (;x;x-=lowbit(x)) ans+=tree[x]; return ans; } } tree1,tree2; int compare(pnode x,pnode y){ return (x.x<y.x)||(x.x==y.x&&x.r<y.r); } int main() {n=read(),m=read(),Size=trunc(sqrt(n));for (int i=1;i<=n;i++) a[i]=read();for (int i=1;i<=m;i++){p[i].l=read(),p[i].r=read(),p[i].a=read(),p[i].b=read();p[i].id=i,p[i].x=(p[i].l-1)/Size+1;}sort(p+1,p+m+1,compare);int L=1,R=0;for (int i=1;i<=m;i++){while (L<p[i].l) cnt[a[L]]--,tree1.change(a[L],-1),tree2.change(a[L],cnt[a[L]]==0?-1:0),L++;while (L>p[i].l) L--,cnt[a[L]]++,tree1.change(a[L], 1),tree2.change(a[L],cnt[a[L]]==1? 1:0);while (R<p[i].r) R++,cnt[a[R]]++,tree1.change(a[R], 1),tree2.change(a[R],cnt[a[R]]==1? 1:0);while (R>p[i].r) cnt[a[R]]--,tree1.change(a[R],-1),tree2.change(a[R],cnt[a[R]]==0?-1:0),R--;Ans1[p[i].id]=tree1.query(p[i].b)-tree1.query(p[i].a-1);Ans2[p[i].id]=tree2.query(p[i].b)-tree2.query(p[i].a-1);}for (int i=1;i<=m;i++) printf("%d %d\n",Ans1[i],Ans2[i]);return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的P4396 [AHOI2013]作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。