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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ5286:[HNOI/AHOI2018]转盘——题解

發布時間:2024/9/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ5286:[HNOI/AHOI2018]转盘——题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.lydsy.com/JudgeOnline/problem.php?id=5286

https://www.luogu.org/problemnew/show/P4425

https://loj.ac/problem/2495

題面見上面。

然后因為懶得寫公式了所以看這個人的博客吧:https://www.luogu.org/blog/litble-blog/solution-p4425

合并的原理如果看了那個博客還沒看懂的話,不妨看看下面這張圖:

我們要求的是最上面區間的答案,但顯然不能是tr[a]=min(tr[a<<1]],tr[a<<1|1]),因為中間的區間還需要合并。

因為參考博客已經證明了tr[a]表示的區間長度對答案沒有影響了所以我們就考慮所有的區間即可。

我們的suan函數的a是最上邊區間的左區間,mx和num就是當前區間的mx[a]。

顯然當mx>=num的時候a的左區間答案只受mx的影響,而右區間的靠右位置有可能不受mx的影響,因此遞歸處理。

當mx<num的時候a的右區間只受num的影響,取一個最小值為mid+1+num,再遞歸處理左區間即可(因為左區間的mx可能比num大)。

#include<cmath> #include<queue> #include<vector> #include<cstdio> #include<cctype> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int N=2e5+5; inline int read(){int X=0,w=0;char ch=0;while(!isdigit(ch)){w|=ch=='-';ch=getchar();}while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } int n,m,p,t[N],b[N],tr[N*4],mx[N*4]; int suan(int a,int l,int r,int num){if(l==r)return l+max(mx[a],num);int mid=(l+r)>>1;if(mx[a<<1|1]>=num)return min(tr[a],suan(a<<1|1,mid+1,r,num));else return min(suan(a<<1,l,mid,num),mid+1+num); } void upt(int a,int l,int r){mx[a]=max(mx[a<<1],mx[a<<1|1]);tr[a]=suan(a<<1,l,(l+r)>>1,mx[a<<1|1]); } void build(int a,int l,int r){if(l==r){tr[a]=t[l];mx[a]=b[l];return;}int mid=(l+r)>>1;build(a<<1,l,mid);build(a<<1|1,mid+1,r);upt(a,l,r); } void mdy(int a,int l,int r,int x){if(l==r){tr[a]=t[l];mx[a]=b[l];return;}int mid=(l+r)>>1;if(x<=mid)mdy(a<<1,l,mid,x);else mdy(a<<1|1,mid+1,r,x);upt(a,l,r); } int main(){n=read(),m=read(),p=read();for(int i=1;i<=n;i++){t[i]=t[i+n]=read();b[i]=t[i]-i;b[i+n]=t[i+n]-i-n;}build(1,1,n<<1);int lastans=tr[1]+n-1;printf("%d\n",lastans);for(int i=1;i<=m;i++){int x=read(),y=read();if(p)x^=lastans,y^=lastans;t[x]=t[x+n]=y;b[x]=y-x;b[x+n]=y-x-n;mdy(1,1,n<<1,x);mdy(1,1,n<<1,x+n);lastans=tr[1]+n-1;printf("%d\n",lastans);}return 0; }

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+歡迎訪問我的博客:http://www.cnblogs.com/luyouqi233/+

+++++++++++++++++++++++++++++++++++++++++++

轉載于:https://www.cnblogs.com/luyouqi233/p/9092806.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的BZOJ5286:[HNOI/AHOI2018]转盘——题解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 懂色中文一区二区在线播放 | 成人资源站 | 青青草毛片| 精品人妻一区二区三区换脸明星 | 91久久精品日日躁夜夜躁欧美 | 亚洲第一狼人区 | 久久久久亚洲精品中文字幕 | 久久人妖 | 国产suv精品一区二区883 | av第一区| 久久羞羞| 精彩视频一区二区 | 牛牛影视一区二区三区 | 熟女人妇 成熟妇女系列视频 | 国产ts在线播放 | 亚洲黄色第一页 | 成人三级黄色 | a毛片毛片av永久免费 | 国内自拍视频网站 | av大片网 | 国产日韩一级片 | 污污视频免费看 | 日韩欧美国产中文字幕 | 一区二区三区精品久久久 | 国产久视频 | 日本午夜一区二区三区 | 色婷婷久久久 | 精品小视频 | 女性爱爱视频 | 97精品国产97久久久久久免费 | 精品爆乳一区二区三区 | 中文字幕在线看人 | 国产精品99久久久久久久 | 在线观看欧美国产 | 主播一区二区 | 在线日韩中文字幕 | 亚洲久久综合 | 绿帽人妻精品一区二区 | 麻豆激情视频 | 亚洲国产成人精品视频 | 一区二区精品视频在线观看 | 欧美日本三级 | 黄色高潮视频 | 欧美影院久久 | 蜜桃色av| 成人免费视频网 | 男生插女生的视频 | 欧美伦理一区 | 欧美变态绿帽cuckold | 狼人精品一区二区三区在线 | 91福利在线观看 | 欧美日韩专区 | 国产在线黄 | 91在现看 | 婷婷激情六月 | 欧美三级手机在线观看 | 亚洲网站免费观看 | 亚洲视频一区二区三区四区 | 日本高清在线一区 | 日韩三级免费看 | 99久久亚洲精品日本无码 | 欧美日韩一区在线观看 | 久久综合狠狠综合久久综合88 | 国产精品第九页 | 美女让男生桶 | 中文字幕在线观看91 | 四虎午夜影院 | 春色激情 | 激情小说激情视频 | 男人天堂avav | 国产精品熟妇一区二区三区四区 | 人妻在卧室被老板疯狂进入 | 免费av动漫| 九色视频在线播放 | 麻豆久久精品 | 干美女av | 久久久久99人妻一区二区三区 | 爱爱视频在线免费观看 | 亚洲综合社区 | 一级在线观看 | 一区二区三区视频观看 | 免费国产小视频 | www视频免费在线观看 | 依人在线 | 99精品小视频 | 色偷偷免费费视频在线 | 亚洲一级特黄 | 国产精品成人一区 | 午夜aaa| 修女也疯狂3免费观看完整版 | 日韩av一区在线观看 | 男女国产精品 | 成人先锋av | 曰本不卡视频 | 欧美日韩国产片 | 亚洲美女一区二区三区 | 日韩视频一区二区三区四区 | 东北少妇不戴套对白第一次 | 国产毛片欧美毛片久久久 |