已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LCT link-cut-tree 动态树模版题合集by yusitongBzoj 2049加边、删边、查询所在联通块/*Problem: 2049User: yusitongLanguage: C+Result: AcceptedTime:2036 msMemory:988 kb*/#include#include#includeusing namespace std;const int INF=0x7fffffff;const int N = 11000;int n,m;int faN,chN2;bool revN;int staN,top;bool isroot(int x)return chfax0!=x&chfax1!=x;void down(int x)if(!revx)return;revchx0=1;revchx1=1;swap(chx0,chx1);revx=0;void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf=y;chy!f=chxf;fay=x;chxf=y;void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(statop-);while(!isroot(x)if(!isroot(fax)if(chfax1=x)(chfafax1=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);void access(int x)int t=0;while(x)splay(x);chx1=t;t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void link(int x,int y)makeroot(x);fax=y;splay(x);void cut(int x,int y)makeroot(x);access(y);splay(y);fax=0;chy0=0;int find(int x)access(x);splay(x);while(chx0)x=chx0;return x;int main()scanf(%d%d,&n,&m);char op10;int x,y;for(int i=1;i=m;i+)scanf(%s%d%d,op,&x,&y);if(op0=C)link(x,y);else if(op0=D)cut(x,y);elseputs(find(x)=find(y)?Yes:No);return 0;Bzoj2002 加边、删边、查询到根的距离/*Problem: 2002User: yusitongLanguage: C+Result: AcceptedTime:2192 msMemory:5712 kb*/#include#include#includeusing namespace std;const int INF=0x7fffffff;const int N = 201000;int n,m;int faN,chN2,sizeN;bool revN;int nxtN;int staN,top;bool isroot(int x)return chfax0!=x&chfax1!=x;void up(int x)sizex=sizechx0+sizechx1+1;void down(int x)if(!revx)return;revchx0=1;revchx1=1;revx=0;swap(chx0,chx1);void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf=y;chy!f=chxf;fay=x;chxf=y;up(y);void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(statop-);while(!isroot(x)if(!isroot(fax)if(chfax0=x)(chfafax0=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);up(x);void access(int x)int t=0;while(x)splay(x);chx1=t;/ up(x);/?t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void link(int x,int y)makeroot(x);fax=y;splay(x);void cut(int x,int y)makeroot(x);access(y);splay(y);fax=0;chy0=0;/up?int main()scanf(%d,&n);for(int i=1,t;i=n;i+) scanf(%d,&t);t=min(i+t,n+1);fai=nxti=t;sizei=1;sizen+1=1;scanf(%d,&m);int op,x,y;for(int i=1;i=m;i+)scanf(%d%d,&op,&x);x+;if(op=1)makeroot(n+1);access(x);splay(x);printf(%dn,sizechx0); elsescanf(%d,&y);y=min(x+y,n+1);cut(x,nxtx);link(x,y);nxtx=y;return 0;Bzoj 3282加边、删边、单点修改,树链查询#include#include#includeusing namespace std;const int INF=0x7fffffff;const int N = 301000;int n,m;int faN,chN2,sizeN,valN,xsumN;bool revN;int staN,top;#define rep(i,l,r) for(int i=(l);i9|t=0&t=9)x=x*10+t-0,t=getchar();return x*f;bool isroot(int x)return chfax0!=x&chfax1!=x;void up(int x)int l=chx0,r=chx1;xsumx=xsumlxsumrvalx;sizex=sizel+sizer+1;void down(int x)if(!revx)return;revchx0=1;revchx1=1;revx=0;swap(chx0,chx1);void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf=y;chy!f=chxf;fay=x;chxf=y;up(y);void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(statop-);while(!isroot(x)if(!isroot(fax)if(chfax0=x)(chfafax0=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);up(x);void access(int x)int t=0;while(x)splay(x);chx1=t;up(x);t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void split(int x,int y)makeroot(x);access(y);splay(y);void link(int x,int y)makeroot(x);fax=y;void cut(int x,int y)makeroot(x);access(y);splay(y);chy0=0;fax=0;up(y);int find(int x)access(x);splay(x);while(chx0)x=chx0;return x;int main()n=read();m=read();rep(i,1,n)xsumi=vali=read();sizei=1;int op,x,y;rep(i,1,m)op=read();x=read();y=read();if(op=0)split(x,y);printf(%dn,xsumy);else if(op=1)if(find(x)!=find(y)link(x,y);else if(op=2)if(find(x)=find(y)cut(x,y);elsemakeroot(x);xsumx=xsumxvalxy;valx=y;return 0;/*0:后接两个整数(,),代表询问从到的路径上的点的权值的和。保证到是联通的。1:后接两个整数(,),代表连接到,若到已经联通则无需连接。:后接两个整数(,),代表删除边(,),不保证边(,)存在。:后接两个整数(,),代表将点上的权值变成。*/Bzoj2631加边、删边、树链上修改查询#include#include#include#define rep(i,l,r) for(int i=(l);i=(r);i+)using namespace std;const int INF=0x7fffffff;const int N = 110000;typedef long long LL;const LL Q = 51061;int n,q;int faN,sizeN,chN2;LL taN,tmN,sumN,valN;bool revN;int staN,top;#define RD readtemplate inline T read()T x=0,f=1;char t=getchar();while(t9|t=0&t=9)x=x*10+t-0,t=getchar();return x;bool isroot(int x)return chfax0!=x&chfax1!=x;void up(int x)sizex=(sizechx0+sizechx1+1)%Q;/!sumx=(sumchx0+sumchx1+valx)%Q;void cal(int id,LL m=1,LL a=0)if(!id)return;tmid=(tmid*m)%Q;taid=(taid*m+a)%Q;valid=(valid*m+a)%Q;sumid=(sumid*m+a*sizeid)%Q;void down(int x)int l=chx0,r=chx1;if(revx)revl=1;revr=1;swap(chx0,chx1);revx=0;if(tax=0&tmx=1)return;cal(l,tmx,tax);cal(r,tmx,tax);tmx=1;tax=0;void rotate(int x,int f)int y=fax;if(!isroot(y)chfaychfay1=y=x;fax=fay;if(chxf)fachxf=y;chy!f=chxf;fay=x;chxf=y;up(y);void splay(int x)sta+top=x;for(int i=x;!isroot(i);i=fai)sta+top=fai;while(top)down(statop-);while(!isroot(x)if(!isroot(fax)if(chfax0=x)(chfafax0=fax)rotate(x,chfax0=x);else rotate(fax,chfafax0=fax);rotate(x,chfax0=x);up(x);void access(int x)int t=0;while(x)splay(x);chx1=t;/1!up(x);t=x;x=fax;void makeroot(int x)access(x);splay(x);revx=1;void split(int x,int y)makeroot(x);access(y);splay(y);void link(int x,int y)makeroot(x);fax=y;/ splay(x);/!yes!void cut(int x,int y)makeroot(x);access(y);splay(y);chy0=0;fax=0;up(x);int main()n=RD();q=RD();int u,v;rep(i,1,n)tmi=vali=sumi=sizei=1;rep(i,2,n)u=RD();v=RD(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46171-2025榛坚果及果仁
- 2026年中国水上气球行业市场前景预测及投资价值评估分析报告
- 2026年中国铝箔排烟管行业市场前景预测及投资价值评估分析报告
- 2026年中国真空泵管行业市场规模及未来投资方向研究报告
- 2026年中国打药泵行业市场前景预测及投资价值评估分析报告
- 2025重庆两江新区人民医院重症医学科医师岗位招聘3人笔试考试参考试题及答案解析
- 2026年中国铁路郑州局集团有限公司招聘全日制普通高等院校大专(高职)学历毕业生1288人考试笔试参考题库附答案解析
- 2025云南昆明润城学校秋季学期教育人才招聘10人笔试考试备考试题及答案解析
- 2025重庆市合川区卫生事业单位“绿色通道”引进高层次人才19人笔试考试参考题库及答案解析
- 2025山东协和学院党委办公室工作人员招聘1人考试笔试备考试题及答案解析
- 园区物业服务方案(3篇)
- 新解读《DZ-T 0130.11 - 2006地质矿产实验室测试质量管理规范 第11部分:岩石物理力学性质试验》新解读
- 工程代签免责协议书
- 承接查验委托协议书
- 快艇买卖合同协议书
- 年产200吨高纯金属铯铷项目报告书
- 导弹基本知识
- 2025年度租赁车辆租赁合同附件四:维修保养记录
- 采血后预防淤青的按压方式
- 国企中层领导竞聘笔试题
- 《AI公文写作范例大全:格式、要点与技巧》课件 第5、6章 AI公文写作的方法、AI写作工具的测评
评论
0/150
提交评论