奇怪的难度。
A
当 (b=2) 的时候再操作,操作次数是一定的。
因此 (b) 的变化量很小,暴力枚举。
B
考虑哪个数不同,然后不同后可以选择的区间是什么。
会发现中间夹着的区间选两遍,旁边的选一遍。做前缀和好了。
C
简单转化发现一定要满足 (a=k(b+1),k<b) 。
枚举 (b),贡献式带有一个 (min),找到其分割点,前一部分直接求,后一部分整除分块。
D
可以发现 (1) 到 (16) 的 (mathrm{lcm}) 是 (720720) 。
考虑黑白染色,黑格子填 (720720),白格子填 (720720-k^4) 形式即可,容易发现一定存在合法的白格子填数方案。
E
(f(u)) 表示红点操作完后在 (u) 的最大取值,转移的时候按层转移,分一下子树内和子树外的情况即可。
F
(f(i)) 表示 (b_i=sum a_j) 时前 (i) 个位置的方案数。
转移的时候枚举上一个位置,写出 (a_j) 后容易发现上一个位置能转移必须要满足"上一个位置到 (i-1) 的 (b) 之和"不为 (0),否则就算重了(跟第一个条件)。
这样子的话用 map 优化转移即可。