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

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

 

Code:

#include
#include
#include
using namespace std;typedef long long ll;const int maxn=30000+5;int head[maxn],nex[maxn*2],to[maxn*2]; int dep[maxn],siz[maxn],son[maxn],p[maxn],top[maxn];int A[maxn],maxv[maxn*4+3], val[maxn]; int val2[maxn]; ll sumv[maxn*4+3]; int _max; int cnt,n,cnt2;void addedge(int u,int v){ nex[++cnt]=head[u]; head[u]=cnt,to[cnt]=v;}void dfs1(int u,int fa,int cur){ p[u]=fa,dep[u]=cur,siz[u]=1; for(int i=head[u];i;i=nex[i]) { int v=to[i]; if(v!=fa) { dfs1(v,u,cur+1); siz[u]+=siz[v]; if(son[u]==-1||siz[v]>siz[son[u]])son[u]=v; } }}void dfs2(int u,int tp){ top[u]=tp,A[u]=++cnt2; if(son[u]>0)dfs2(son[u],tp); for(int i=head[u];i;i=nex[i]) { int v=to[i]; if(v!=p[u]&&v!=son[u])dfs2(v,v); }}void build_tree(int L,int R,int o,int arr[]){ if(L==R){ sumv[o]=maxv[o]=arr[L]; return; } int mid=(L+R)/2; build_tree(L,mid,o*2,arr); build_tree(mid+1,R,o*2+1,arr); sumv[o]=sumv[o*2]+sumv[o*2+1]; maxv[o]=max(maxv[o*2],maxv[o*2+1]);}void update(int l,int k,int L,int R,int o){ if(L==R) { sumv[o]=maxv[o]=k; return; } int mid=(L+R)/2; if(l<=mid)update(l,k,L,mid,o*2); else update(l,k,mid+1,R,o*2+1); sumv[o]=sumv[o*2]+sumv[o*2+1]; maxv[o]=max(maxv[o*2],maxv[o*2+1]);}ll query(int l,int r,int L,int R,int o){ if(l<=L&&r>=R) { _max=max(_max,maxv[o]); return sumv[o]; } int mid=(L+R)/2; ll ret=0; if(l<=mid)ret+=query(l,r,L,mid,o*2); if(r>mid)ret+=query(l,r,mid+1,R,o*2+1); return ret;}ll lca(int x,int y) { _max=-300000; ll ret=0; while(top[x]!=top[y]) { if(dep[top[x]]

  

转载于:https://www.cnblogs.com/guangheli/p/9845095.html

你可能感兴趣的文章
我们的何时能赶上MS的脚步
查看>>
UIWindow & UIWindowLevel笔记
查看>>
Eclipse的快捷键 收藏
查看>>
从技术人才到项目管理的跨越
查看>>
英语口语会话六
查看>>
【bzoj1913】 Apio2010—signaling 信号覆盖
查看>>
返回上一步
查看>>
Appium自动化测试框架简介
查看>>
linux磁盘管理
查看>>
php实现二维码
查看>>
CQOI2007 涂色
查看>>
Delphi进制转换(二进制/十进制/十六进制)
查看>>
数据结构:冒泡排序及其改进、插入排序和希尔排序
查看>>
HTML基础 --- HTML属性
查看>>
mongodb复制集Replica Set使用简介
查看>>
poi 读取excel row.getCell() 为null
查看>>
bzoj 1646 抓住那头牛
查看>>
SQL面试题
查看>>
JavaScript_Util_04
查看>>
给网站添加选项卡图标
查看>>