博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树链剖分
阅读量:4599 次
发布时间:2019-06-09

本文共 1203 字,大约阅读时间需要 4 分钟。

先来LCA的:

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 const int maxn=200000+10; 7 struct Tedge{
int x,y,next;}adj[maxn*2];int fch[maxn],ms=0; 8 void AddEdge(int u,int v){ 9 adj[++ms]=(Tedge){u,v,fch[u]};fch[u]=ms; adj[++ms]=(Tedge){v,u,fch[v]};fch[v]=ms; return;10 }11 int s[maxn],top[maxn],fa[maxn],son[maxn],dep[maxn],n,m;12 void First_DFS(int x){13 dep[x]=dep[fa[x]]+1;s[x]=1;14 for(int i=fch[x];i;i=adj[i].next){15 int v=adj[i].y;if(v==fa[x]) continue;16 fa[v]=x;First_DFS(v);17 if(s[son[x]]
=0;i--) putchar(buf[i]+'0');return;48 }49 void init(){50 n=read();m=read();for(int i=2;i<=n;i++) AddEdge(read(),read());51 First_DFS(1);Second_DFS(1,1);return;52 }53 void work(){54 int a,b,c,d[3];55 while(m--){56 a=read();b=read();c=read();57 d[0]=dist(a,b);d[1]=dist(b,c);d[2]=dist(a,c);58 sort(d,d+3);write(d[1]);putchar('\n');59 } return;60 }61 void print(){62 return;63 }64 int main(){65 init(); work(); print(); return 0;66 }

 

转载于:https://www.cnblogs.com/chxer/p/4430370.html

你可能感兴趣的文章
python小练——找出指定目录下小于指定字节的文件,输出到文本文件
查看>>
渐渐磨砺--16年11月封闭总结
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
【消息队列MQ】各类MQ比较
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
ZOJ 1204 一个集合能组成多少个等式
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
开始学习iOS开发
查看>>
从int 3探索Windows应用程序调试原理
查看>>
Java传参都是传引用变量的副本
查看>>
LINUX 内核结构
查看>>
Hexo+Github博客最简教程-Dockerfile自动搭建
查看>>
自学python记录_(3)函数
查看>>
ssh整合 class not found
查看>>
Linux(2)_常用命令2
查看>>