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

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

题目:

树剖裸题。然而WA、RE了好久……

原来是跳 top 的那个地方! top 不相等的时候比较的是 top 的深度,不是自己的深度! top 相等之后才比较自己的深度。

 dfs 序离开自己时的标号就是 dfn[ cr ] + siz[ cr ] -1 。

#include
#include
#include
#include
#define ll long longusing namespace std;const int N=1e5+5;int n,q,hd[N],xnt,to[N],nxt[N];int fa[N],dep[N],dfn[N],tim,siz[N],son[N],top[N];int tot,ls[N<<1],rs[N<<1];ll sm[N<<1],laz[N<<1];//char ch[10];int rdn(){ int ret=0;bool fx=1;char ch=getchar(); while(ch>'9'||ch<'0'){
if(ch=='-')fx=0;ch=getchar();} while(ch>='0'&&ch<='9') ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar(); return fx?ret:-ret;}void add(int x,int y){ to[++xnt]=y;nxt[xnt]=hd[x];hd[x]=xnt;}void dfs(int cr){ dep[cr]=dep[fa[cr]]+1; siz[cr]=1; for(int i=hd[cr],v;i;i=nxt[i]) { v=to[i]; dfs(v);siz[cr]+=siz[v]; siz[v]>siz[son[cr]]?son[cr]=v:0; }}void dfsx(int cr){ dfn[cr]=++tim; if(son[cr])top[son[cr]]=top[cr],dfsx(son[cr]); for(int i=hd[cr],v;i;i=nxt[i]) if((v=to[i])!=son[cr]) top[v]=v,dfsx(v);}void build(int l,int r,int cr){ if(l==r)return; int mid=l+r>>1; ls[cr]=++tot;build(l,mid,ls[cr]); rs[cr]=++tot;build(mid+1,r,rs[cr]);}void pshd(int cr,int l,int mid,int r){ if(!laz[cr])return; ll d=laz[cr]; laz[cr]=0; sm[ls[cr]]+=d*(mid-l+1);sm[rs[cr]]+=d*(r-mid); laz[ls[cr]]+=d;laz[rs[cr]]+=d;}void pshp(int cr){sm[cr]=sm[ls[cr]]+sm[rs[cr]];}void mdfy(int l,int r,int cr,int L,int R,int k){ if(l>=L&&r<=R){sm[cr]+=(ll)k*(r-l+1);laz[cr]+=k;return;} int mid=l+r>>1;pshd(cr,l,mid,r); if(L<=mid)mdfy(l,mid,ls[cr],L,R,k); if(mid
=L&&r<=R)return sm[cr]; int mid=l+r>>1;pshd(cr,l,mid,r); if(R<=mid)return query(l,mid,ls[cr],L,R); if(mid

 

转载于:https://www.cnblogs.com/Narh/p/9801772.html

你可能感兴趣的文章
锁机制
查看>>
gentoo添加自启动
查看>>
Cocos2d-x 3.1 Lua Binding
查看>>
linux 进度条的实现及makefile的简单应用
查看>>
Linux命令:sed简介
查看>>
linux X界面 输入密码正确,但是无法登陆系统,命令行界面可以登陆
查看>>
杨中科老师-C语言也能干大事链接
查看>>
查看linux分区占用空间情况
查看>>
理解flexible.js所需的viewport知识
查看>>
rman 操作
查看>>
5种最流行的IO策略
查看>>
自反ACL(2)
查看>>
MySQL基础【MySQL运维实践】
查看>>
人工智能教程001:什么是人工智能以及相关知识要求
查看>>
30Mysql 的配置
查看>>
关于摄影的技巧,摄影爱好者们都好好学习吧
查看>>
Mac tips - 隐藏窗口及恢复
查看>>
dvbbs论坛的安装
查看>>
linux管道
查看>>
Apache web目录修改
查看>>