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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[ USACO 2017 FEB ] Why Did the Cow Cross the Road III (Gold)

發(fā)布時(shí)間:2025/6/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ USACO 2017 FEB ] Why Did the Cow Cross the Road III (Gold) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

\(\\\)

\(Description\)


給定長度為\(2N\)的序列,\(1\text ~N\)各出現(xiàn)過\(2\)次,\(i\)第一次出現(xiàn)位置記為\(a_i\),第二次記為\(b_i\),求滿足\(a_i<a_j<b_i<b_j\)\((i,j)\)對(duì)數(shù)。

  • \(N\in [1,10^5]\)

\(\\\)

\(Solution\)


考慮以一個(gè)數(shù)作為\(i\)出現(xiàn)在答案里,對(duì)應(yīng)的\(j\)應(yīng)滿足\(a_j\in (a_i,b_i),b_j>b_i\)。也就是說,我們需要對(duì)每一個(gè)數(shù)統(tǒng)計(jì)它兩次出現(xiàn)的位置構(gòu)成的區(qū)間里,有多少個(gè)數(shù)字是第一次出現(xiàn)。

考慮樹狀數(shù)組的做法,第一次遇到一個(gè)數(shù)時(shí),在出現(xiàn)位置打標(biāo)記,記錄下這個(gè)數(shù)第一次出現(xiàn)的位置,便于詢問。

當(dāng)?shù)诙斡龅竭@個(gè)數(shù)時(shí),直接查詢區(qū)間\((a_i,b_i)\)的區(qū)間和即可。因?yàn)檫@個(gè)數(shù)已經(jīng)出現(xiàn)了兩次,不能對(duì)后續(xù)的詢問做出貢獻(xiàn)了,所以要將之前的打標(biāo)記處撤銷標(biāo)記。

\(\\\)

\(Code\)


#include<map> #include<cmath> #include<cstdio> #include<cctype> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define N 50010 #define R register #define gc getchar using namespace std;inline int rd(){int x=0; bool f=0; char c=gc();while(!isdigit(c)){if(c=='-')f=1;c=gc();}while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=gc();}return f?-x:x; }int n,ans,p[N];struct BIT{int c[N];inline int lowbit(int x){return x&-x;}inline void add(int p,int x){for(;p<=n;p+=lowbit(p))c[p]+=x;}inline int sum(int p){int res=0;for(;p;p-=lowbit(p)) res+=c[p];return res;} }bit;int main(){n=rd()<<1;for(R int i=1,x;i<=n;++i){x=rd();if(!p[x]) bit.add((p[x]=i),1);else ans+=bit.sum(i)-bit.sum(p[x]),bit.add(p[x],-1);}printf("%d\n",ans);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/SGCollin/p/9740980.html

總結(jié)

以上是生活随笔為你收集整理的[ USACO 2017 FEB ] Why Did the Cow Cross the Road III (Gold)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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