sol
对于一个长度为$L$的相同字符段,显然要花费$\frac{L}{2}$次操作才能使得相邻不相同。于是只需要分类讨论一下首尾字符是否相同,算出每种字符、每种长度的连续字符段出现了多少次即可。
B
sol
首先当图不是二分图的时候肯定无解,否则可以发现答案的上界是图上两点的最短路最大值,且不难构造出达到答案上界的方案。于是bfs/Floyd求出这个值即可。
C
sol
可以把题目转换成:每一次把该数的最低位异或$1$放到最高位上,问要多少次才能够与原数相同。这样看来每一个数经过$2N$次一定会回到原数。那么哪些数操作次数少于$2N$?手玩可以发现:一个数能表示成$AA‘AA‘...A$的循环结构,其中$A$是$01$串,$A‘$是其所有位异或$1$得到的串。这样的数只需要$2|A|$次操作。注意分成的段数要是奇数,否则仍然需要$2N$次操作。