题目要求可以转化成一个01串,让通过最少次数把序列变成中间是0,两端是1: 首先我们可以考虑一些性质: 最优解一定是每次操作都把0和1交换 这个很好理解,如果你交换同一种东西,跟没换一样 这个题卡就卡在他是一个环,由于可以两头交换,所以不好处理,我们的做法是破环为链: 对于整个环,在最优解情况下,一定有两个相邻的位置没有被交换过 如果所有相邻位置都换过,那么他就换回去了,也是无效操作,所有我们可以枚举这个点作为断点,把环视为n个序列 断点确定后,我们设置一个目标状态,就是是一种颜色(0或1)全部…