题面 题解 这种题目一看就是重链剖分裸题,还是区间修改,单点查询,查询之前在遍历时要记一个\(delta\),因为这一次的起点就是上一次的终点,不需要放糖,所以可以用\(BIT\)来写,但我写完\(modify\)才反应过来,所以没改了. #include <cstdio> #include <cstring> #include <algorithm> using std::swap; const int N = 3e5 + 10; int n, a[N], siz[N…
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<string> #include<map> typedef long long ll; using namespace std; int n,m,ans; ][],f[][],s1[][],s2[][];//s1为横向,s2为纵向 //s1[i][j]表示(i,j)最多向…