树链剖分总结
来源:互联网 发布:梅西和c罗谁厉害 知乎 编辑:程序博客网 时间:2024/05/16 12:37
树链剖分的代码:
struct node{ int to,nxt; }ed[maxn<<1]; int head[maxn],cnt; void addedge(int u,int v){ ed[cnt].to=v; ed[cnt].nxt=head[u]; head[u]=cnt++; } int sz[maxn],top[maxn],son[maxn],fa[maxn],dep[maxn],p[maxn];
//sz[]树的size top[]每个节点top的编号 son[]size最大的儿子 fa[]父亲节点 dep[]结点深度,p[]分后的编号
int pos; void dfs1(int u,int pre,int d){ fa[u]=pre; sz[u]=1; dep[u]=d; for(int i=head[u];~i;i=ed[i].nxt){ int v=ed[i].to; if(v==pre)continue; dfs1(v,u,d+1); if(son[u]==-1||sz[v]>sz[son[u]])son[u]=v; sz[u]+=sz[v]; } } void dfs2(int u,int tp){ top[u]=tp; p[u]=pos++; if(son[u]==-1)return; dfs2(son[u],tp); for(int i=head[u];~i;i=ed[i].nxt){ int v=ed[i].to; if(v==son[u]||v==fa[u])continue; dfs2(v,v); } }
void init(){memset(head,-1,sizeof(head));memset(son,-1,sizeof(son));cnt=0;pos=1;}
0 0
- 树链剖分总结
- 总结-树链剖分
- 树链剖分总结
- 树链剖分总结
- 树链剖分-总结
- 树链剖分总结
- 树链剖分总结
- 树链剖分个人题目总结
- 【数据结构】树链剖分总结
- 总结
- 总结
- 总结
- 总结
- 总结!
- 总结
- 总结.
- 总结。
- 总结
- Strusts2数据校验的方法二(通过XWork校验框架实现)
- CCF 201412-2Z字型扫描
- 算法提高 最小方差生成树
- 装饰者设计模式
- 进程间通信无名管道
- 树链剖分总结
- C++设计模式-Template Method
- 2017阿里前端测试题(div模拟下拉列表)
- angular2 HostListener
- linux下进程的信号量
- 思维导图:一张图了解jQuery
- 序列流_SequenceInputStream类
- 把Sublime Text3从windwos移到ubunut上
- 中文劲爆的音乐歌曲 有什么 国内重金属摇滚音乐,激情音乐,舞曲,电音