題目
這不是線段樹模板2放\(lct\)上了嗎
於是開始碼碼碼
之後一直wawawa
於是開始調調調
之後旁邊的慎老師看了一看**就說,你下放乘法標記的時候不乘加法標記嗎
我:。。。
**
#include#include#include#include#define maxn 300005
#define re register
#define ll long long
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
inline int read()
int n,m;
int fa[maxn],v[maxn],s[maxn],ch[maxn][2],st[maxn],rev[maxn];
inline int nroot(int x)
inline void pushup(int x)
inline void pushdown(int x)
inline void rotate(int x)
inline void splay(int x)
}inline void access(int x)
inline void makeroot(int x)
inline int findroot(int x)
inline void split(int x,int y)
inline void link(int x,int y)
inline void cut(int x,int y)
int main()
return 0;
}
國家集訓隊 Tree II
lct維護這種東西是要比線段樹要噁心的多的 畢竟線段樹的區間大小是可以直接通過區間左右端點算出的,但是lct就不行,必須手動維護。並且,線段樹的維護是 左兒子 右兒子 但是lct的維護是 左兒子 自己 右兒子 請務必先把線段樹模板做掉,關於運算的優先順序什麼的實在不應該放到這道題裡講吧 注意細節,比...
國家集訓隊 Tree II 題解
題目傳送門 題目大意 給一棵樹,若干種操作 路徑加,路徑乘,刪邊加邊,求路徑和。看到刪邊加邊就知道是 lct lctlc t 了。路徑加路徑乘都是打個標記的事,但是在更新 sum sumsu m 的時候,sum sumsu m 不僅要乘上乘法標記,還要加上加法標記乘 siz esize size 的...
Luogu1501 國家集訓隊 Tree II
題目描述 一棵n個點的樹,每個點的初始權值為1。對於這棵樹有q個操作,每個操作為以下四種操作之一 u v c 將u到v的路徑上的點的權值都加上自然數c u1 v1 u2 v2 將樹中原有的邊 u1,v1 刪除,加入一條新邊 u2,v2 保證操作完之後仍然是一棵樹 u v c 將u到v的路徑上的點的權...