这题给我的第一感觉就是树链剖分$+$树上差分,然而我不会
事实上主流做法确实是树链剖分,复杂度$O$$($$n$$logn^2$$)$
然而这题还可以线段树合并,复杂度$O$$($$n$$logn$$)$
但是跑得比树链剖分慢一倍,别问我为什么常数那么大
直接对每一个节点都维护一颗权值线段树
再套一个树上差分,最后直接线段树合并
因为这题空间卡得紧,所以离线操作
1 |
|
Lonely Kid Hides in Heart
这题给我的第一感觉就是树链剖分$+$树上差分,然而我不会
事实上主流做法确实是树链剖分,复杂度$O$$($$n$$logn^2$$)$
然而这题还可以线段树合并,复杂度$O$$($$n$$logn$$)$
但是跑得比树链剖分慢一倍,别问我为什么常数那么大
直接对每一个节点都维护一颗权值线段树
再套一个树上差分,最后直接线段树合并
因为这题空间卡得紧,所以离线操作
1 | #include<bits/stdc++.h> |