目录 前置知识 预处理 维护 查询 子树有关操作 子树查询 子树修改 树链有关操作 链查询 链修改 @(简述树链剖分) 题目链接: luogu P3384 【模板】树链剖分 先上完整代码,变量名解释 1 #include<cstdio> #include<algorithm> #include<iostream> using namespace std; typedef long long ll; #define N 500005 #define RI register int int tot=0,n,m,rt,md; int fa[ N ],deep[ N ],head[ N ],size[ N ],son[ N ],id[ N ],w[ N ],nw[ N ],top[ N ]; struct EDGE{ int to,next; }e[ N ]; inline void add( int from , int to ){ e[ ++ tot ].to = to; e[ tot ].next = head[ from ]; head[ from ] = tot; } template<class T> inline void read(T &res){ static char ch;T flag = 1; while( ( ch = getchar() ) < '0' ||