简要记录补的abc的思路,正式参加的就不记了。 不排除我咕咕的情况。 题号靠前,没有记录,基本就是模拟。 代码实现都在账号 Livinfly 中,可在AtCoder所有提交中查看。
unbalanced的字母,然后枚举找到长度为3的区间内有两个以上这个字母的地方,特判下n = 2的情况。
a*b == x (1 <= x <= n)的方案数,答案就是cnt[i]*cnt[n-i]。O(1)。


同时,有几个边界条件:
+dist
-dist
*2可以求出,时间复杂度符合;维护dist,因为修改边权对dist的影响只有深度深的点的子树,所以可以考虑树状数组维护连续dfn序,来维护一个子树的dist的修改。

stoll会很方便。