有关贪心的小思维题。
由于反置代价小于等于交换代价,那么一定不能用交换去代替反置。
首先,如果交换的代价大于了两次反置的代价,那么直接全部使用反置即可。
否则,我们将不匹配的位置分类,发现最多只有四类,ababab 分别是 00,01,10,1100, 01, 10, 1100,01,10,11 ,任意两个不同种类不匹配的话,我们一定可以交换其中的某一位 000 和 111 使之两两匹配,那么我们就只看最多的一类不匹配的位置的数量有没有超过总数的一半即可。
如果超过就超过的部分反置,其余匹配,否则一定存在一种分配方式使之匹配后至多仅剩一个。
循环枚举一下即可,复杂度 O(n)O(n)O(n) 。
注册一个 NanXiao OpenAtom Club Online Judge 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 NanXiao OpenAtom Club Online Judge 通用账户