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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

「ZJOI2016」大森林 解题报告

發(fā)布時(shí)間:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「ZJOI2016」大森林 解题报告 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

「ZJOI2016」大森林

神仙題...

很顯然線段樹搞不了

考慮離線操作

我們只搞一顆樹,從位置1一直往后移動(dòng),然后維護(hù)它的形態(tài)試試

顯然操作0,1都可以拆成差分的形式,就是加入和刪除

因?yàn)楸WC了操作2的合法性,我們不妨先不計(jì)合法性把所有點(diǎn)加到樹中

顯然每個(gè)點(diǎn)要連到在這個(gè)點(diǎn)之前的離這個(gè)點(diǎn)時(shí)間上最近那個(gè)1操作的點(diǎn)上

然后可以發(fā)現(xiàn)移動(dòng)時(shí)1操作相當(dāng)于很多個(gè)點(diǎn)換根

我們可以對(duì)每個(gè)1操作建一個(gè)虛點(diǎn),然后就可以很方便換根了

那么如何保證查詢操作呢?

可以把每個(gè)1操作的虛點(diǎn)大小設(shè)成0(代表它父親邊的直接長(zhǎng)度),并按時(shí)間串起來(lái)。

這樣,一個(gè)虛點(diǎn)的虛點(diǎn)兒子的子樹的點(diǎn)其實(shí)也是它的子樹了,查詢的時(shí)候差dis[u]+dis[v]-dis[lca]*2就可以了

是不是以為這個(gè)0操作的區(qū)間限制就沒有用了?

其實(shí)不是,注意到1操作的點(diǎn)可能還沒出現(xiàn)...這時(shí)候就要把1操作刪掉


Code:

#include <cstdio> #include <cctype> #include <algorithm> using std::min; using std::max; const int N=3e5+10; template <class T> void read(T &x) {x=0;char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar(); } int ans[N],n,m,_n,_m,q,p[N],node,ti[N],tot,L[N],R[N]; struct koito_yuu {int pos,op,u,v;koito_yuu(){}koito_yuu(int Pos,int Op,int U,int V){pos=Pos,op=Op,u=U,v=V;}bool friend operator <(koito_yuu a,koito_yuu b){return a.pos==b.pos?a.op<b.op:a.pos<b.pos;} }yuu[N]; #define ls ch[now][0] #define rs ch[now][1] #define fa par[now] int sum[N],ch[N][2],par[N],siz[N]; bool isroot(int now){return ch[fa][0]==now||ch[fa][1]==now;} int identity(int now){return ch[fa][1]==now;} void connect(int f,int now,int typ){ch[fa=f][typ]=now;} void updata(int now){sum[now]=sum[ls]+sum[rs]+siz[now];} void Rotate(int now) {int p=fa,typ=identity(now);connect(p,ch[now][typ^1],typ);if(isroot(p)) connect(par[p],now,identity(p));else fa=par[p];connect(now,p,typ^1);updata(p),updata(now); } void splay(int now) {for(;isroot(now);Rotate(now))if(isroot(fa))Rotate(identity(now)^identity(fa)?now:fa); } int access(int now) {int las=0;for(;now;las=now,now=fa) splay(now),rs=las,updata(now);return las; } int LCA(int x,int y) {access(x);return access(y); } void link(int x,int y) {access(x),splay(x);par[x]=y; } void cat(int x) {access(x),splay(x);par[ch[x][0]]=0;ch[x][0]=0; } int qry(int x) {access(x),splay(x);return sum[x]; } int query(int x,int y) {int lca=LCA(x,y);return qry(x)+qry(y)-(qry(lca)<<1); } int main() {read(n),read(m);L[1]=1,R[1]=n,node=1,++tot;for(int op,l,r,x,u,v,i=1;i<=m;i++){read(op);if(op==0) ++node,read(L[node]),read(R[node]),p[node]=i;else if(op==1){ti[++tot]=i;link(tot,tot-1);read(l),read(r),read(x);l=max(L[x],l),r=min(R[x],r);if(l>r) continue;yuu[++q]=koito_yuu(l,-1,x,tot);yuu[++q]=koito_yuu(r+1,0,x,tot);}else{read(x),read(u),read(v);yuu[++q]=koito_yuu(x,++_n,u,v);}}_m=tot;for(int i=2;i<=node;i++){int pos=std::upper_bound(ti+1,ti+1+_m,p[i])-ti-1;siz[++tot]=1,sum[tot]=1;link(tot,pos);}std::sort(yuu+1,yuu+1+q);for(int j=1,i=1;i<=n;i++){while(yuu[j].pos==i){int u=yuu[j].u+_m-1,v=yuu[j].v;if(u==_m) u=1;if(yuu[j].op==-1){cat(v);link(v,u);}else if(yuu[j].op==0){cat(v);link(v,v-1);}else ans[yuu[j].op]=query(u,v==1?1:v+_m-1);++j;}}for(int i=1;i<=_n;i++) printf("%d\n",ans[i]);return 0; }

2019.3.11

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

總結(jié)

以上是生活随笔為你收集整理的「ZJOI2016」大森林 解题报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 美色视频 | 性高潮久久久久久久久久 | 午夜精| 亚洲成人a∨ | 五月伊人婷婷 | 久久精品成人av | 久久久999视频 | 久久亚洲aⅴ无码精品 | 伦理片中文字幕 | 人人干人人干人人干 | 亚洲黑丝在线 | 国产freexxxx性播放麻豆 | 欧美精品在线看 | 欧美天天爽 | 日韩一区二区高清视频 | 少妇偷人精品无码人妻 | 国产精品无遮挡 | 国产剧情一区在线 | 国产新婚疯狂做爰视频 | 57pao成人国产永久免费视频 | 性欧美18一19性猛交 | 欧美日韩高清一区二区 国产亚洲免费看 | 都市激情亚洲一区 | 国产精品久久久久一区二区三区 | 国产欧美日韩91 | 久久精品噜噜噜成人88aⅴ | 在线播放国产一区 | 性色在线观看 | 久草免费在线观看视频 | 手机看片一区二区三区 | 亚州黄色网址 | 日本久久成人 | 91干干| 黄色免费网站 | 欧美性猛交富婆 | 亚洲在线网站 | 在线你懂的视频 | 国产精品无码白浆高潮 | 欧美在线精品一区 | 福利久久久 | av在线不卡免费观看 | 99午夜| 日韩一区二区三区在线 | 久久精品人人 | 精品熟女一区二区 | 伊人网在线视频观看 | 丰满少妇久久久久久久 | 麻豆视频在线观看免费 | 日韩毛片一级 | 在线免费一级片 | 亚洲经典一区 | 成人少妇影院yyyy | 天天狠狠操 | 国产美女特级嫩嫩嫩bbb | 色小姐在线视频 | 精精国产 | 成人国产精品免费观看视频 | 日本女人黄色 | 亚洲人av在线 | 亚洲国产精品va在线看黑人 | 美景之屋电影免费高清完整韩剧 | 亚洲涩情 | 欧美精品色 | 日韩免费av网站 | 天天艹天天 | 亚洲一区二区黄片 | 成人软件在线观看 | 男人天堂av电影 | 国内精品视频在线观看 | 老司机一区二区三区 | 日韩伦乱 | 国产美女又黄又爽又色视频免费 | 久久久久人妻一区 | 婷婷在线观看视频 | 91免费看片网站 | 免费黄色av网站 | 中文字幕久久一区 | 四虎国产精品永久免费观看视频 | 精品免费一区二区三区 | 久久在线免费视频 | 无码人妻精品丰满熟人区 | 欧美一级一片 | 性欧美长视频 | 国产91精品ai换脸 | 黄色a级片 | 精品在线二区 | 欧美黑人一级爽快片淫片高清 | 亚洲一二三四五 | 婷婷五月在线视频 | 国产精品一区在线看 | 视色av| 亚洲黄色免费视频 | 亚洲一区二区三区四区视频 | 午夜黄色福利视频 | 女人下面喷水视频 | 国产又爽又黄又嫩又猛又粗 | wwwxxx在线观看 | 精产国品一二三产区m553麻豆 | 香蕉视频啪啪 |