CF1907
模拟。
模拟。
若原字符串中出现次数最多的次数为 \(cnt\),答案是 \(\max(n\%2,cnt\times 2-n)\)。
二分 \(k\),然后从后往前倒,计算出到达每个线段可能到的区间。
\(a+b+c\) 不能进位,否则 \(digitsum()\) 就会至少 \(-9\)。
所以按每一位分步计数。对于单独一位,若 \(n\) 这一位是 \(x\),则用隔板法知这一位方案数为 \(C_x^2\)。
把所有数视作一个环。最优方案要么是逆时针转,要么是顺时针转 + 2次(翻转所需)。两种情况分别看即可。
找最小值,如果最小值个数 \(>1\),必须从第一个开始,转一圈不降。以此判断一下能否顺时针转/逆时针转。
判断后求一下两种情况较小值即可。
有向图,每个点只有一条出边。因此先把所有不在环上的用拓扑排序弄好,再处理环。
怎么弄环?枚举环上一个点开不开,就变成链了。