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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

CodeForces - 1288E Messenger Simulator(树状数组)

發布時間:2024/4/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces - 1288E Messenger Simulator(树状数组) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:點擊查看

題目大意:給出n和m,表示n個人和m個操作,每次操作會將一個數x放到首位置上來,其他數往后順延,比如:

初始時的數組為[4,1,5,3,2],當第一個x為 3 ,則序列變為[3,4,1,5,2],第二個x為 4,序列變為[4,1,5,3,2],第三個x為 2,序列變為[2,4,1,5,3],現在要求輸出每個數字最左邊的位置和最右邊的位置,初始時每個數字在數字所表示的位置上,也就是1,2,3...n-1,n

題目分析:讀完題后很明顯的一個模擬的操作,但是需要合適的數據結構維護,不然復雜度承受不起,換個角度想,因為我們需要的是相對位置,所以當我們將應該操作的x提到隊首后,其他位置的數字就已經發生了相對位置的變化,當統計答案的時候,我們只需要通過區間查詢,查詢某個數之前有多少個數即可,這樣一想就一下子簡單了不少

既然需要區間查詢,那么線段樹和樹狀數組自然成為了不二之選,接下來我們需要實現上述操作,因為我們需要不斷將需要操作的數字進行前移,而樹狀數組是從1開始的,前移不太好實現,但是后移比較方便,所以我們不妨將數軸旋轉一下,讓原本的原點作為最大的地方,每一次將需要操作的數向后移動即達到了將操作數放到首位的操作,在整個的操作過程中就可以完成答案的更新,當一個數只要被操作的話,那么他的最小值肯定是1,至于最大值的話,統計答案時也可以利用樹狀數組前綴和的思想,答案顯然是query(N)-query(pos[x]-1)了,具體實現看代碼吧

注意因為m最大有3e5,所以樹狀數組記得開兩倍大小

代碼:

#include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cstring> #include<algorithm> #include<stack> #include<queue> #include<map> #include<set> #include<sstream> #include<unordered_map> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=6e5+100;int c[N+10],mmin[N],mmax[N],pos[N];int lowbit(int x) {return x&(-x); }int update(int pos,int val) {while(pos<=N){c[pos]+=val;pos+=lowbit(pos);} }int query(int pos) {int ans=0;while(pos){ans+=c[pos];pos-=lowbit(pos);}return ans; }int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){pos[i]=n-i+1;mmin[i]=mmax[i]=i;update(pos[i],1);}for(int i=n+1;i<=n+m;i++){int x;scanf("%d",&x);mmin[x]=1;mmax[x]=max(mmax[x],query(N)-query(pos[x]-1));update(pos[x],-1);pos[x]=i;update(pos[x],1); }for(int i=1;i<=n;i++)mmax[i]=max(mmax[i],query(N)-query(pos[i]-1));for(int i=1;i<=n;i++)printf("%d %d\n",mmin[i],mmax[i]);return 0; }

?

總結

以上是生活随笔為你收集整理的CodeForces - 1288E Messenger Simulator(树状数组)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青青草久久 | 麻豆短视频在线观看 | 亚洲精品免费在线 | 亚洲影院av| 日日碰狠狠添天天爽无码 | 亚洲福利久久 | 视频在线一区 | 性综合网 | 久久影库 | 久久久久久久久久免费视频 | 国产精品国产三级国产播12软件 | 老女人一毛片 | 亚洲aⅴ乱码精品成人区 | 日本不卡免费 | 国产精品久久久久久久久久辛辛 | 在线免费观看日韩 | 国产三级三级三级三级三级 | 日韩综合网站 | 成人精品动漫 | 日韩特级黄色片 | 一本亚洲| 日韩av一区二区在线 | hd丰满圆润的女人hd | 秋霞影院午夜丰满少妇在线视频 | 自拍第1页| 成人免费毛片嘿嘿连载视频 | 黄色高潮 | 九九黄色| 久久中文字幕高清 | 男操女视频免费 | www.国产区 | 欧美日韩亚洲色图 | 亚洲爱情岛论坛永久 | 人妻激情偷乱频一区二区三区 | 三级av网址 | 九九午夜视频 | 国产你懂得 | 操综合网 | 欧美韩国日本在线 | 青青青手机视频在线观看 | 狠狠五月天 | 日韩欧美一区在线观看 | 韩国黄色av | 四虎最新网址在线观看 | 国产色区 | 亚洲美女性生活 | 日本少妇bbwbbw精品 | 久久精品69| 久久国产人妻一区二区免色戒电影 | 欧美乱妇在线观看 | 草草影院在线观看 | 野花社区视频在线观看 | 色哟哟视频网站 | 亚洲成人一| 97精品一区二区三区 | 亚洲天堂资源网 | 亚洲第一精品在线观看 | 国产精品一区二区在线观看 | 亚洲视频在线一区 | 天天躁日日躁aaaxxⅹ | 永久免费黄色片 | 亚洲色视频 | 人人干人人草 | 亚洲欧美日韩电影 | 秋霞二区 | 亚洲黄色在线观看 | 玉足脚交榨精h文 | 亚洲永久无码精品 | 成人免费视频国产免费网站 | 久久在线 | 男男gay动漫 | 哪个网站可以看毛片 | 国产成人一区二区在线 | 日韩视频中文 | 久久成人免费电影 | 日女人网站 | 国产亚洲欧美在线精品 | 亚洲第一页夜 | 精品久久成人 | 亚洲综合在线一区二区 | 日韩av黄色片 | 国产欧洲亚洲 | 九色免费视频 | 黄色录像三级 | 美女扒开内裤让男人桶 | 国产伦精品一区 | 亚洲乱码精品久久久久 | 成人免费看视频 | 久久久88| 美女视频三区 | xxxxx色| 国模吧一区二区三区 | 国产主播福利在线 | 欧美黄色图片 | 国产精品海角社区 | 日本网站在线免费观看 | 日韩av不卡在线 | 免费a级片在线观看 | 亚洲嫩草影院 |