@yang12138
2018-10-22T20:05:25.000000Z
字数 809
阅读 1132
未分类
原题链接:https://loj.ac/problem/2145
首先考虑给定一个串,如何按照给定的规则把串全部变成?
可以证明,在最优方案里每个位置最多被翻转一次,而且最优方案只有一个算同一个.可以通过贪心的思路思考并证明:从大到小检查每个位置,如果当前位置是,显然需要翻转,如果不翻转,将不存在任何方案能使该位置变成;如果当前位置是,显然不能翻转,如果翻转了,要使这位变回,只能对这位再进行一次翻转,相当于没有翻转.以此类推,那么最优方案可以被唯一确定,时间复杂度是.
由以上推论可以知道,和翻转次数期望有关的只有最优翻转次数.
设为最优翻转次数为的情况下翻转次数的期望.
显然当时.
当时
当时,.
当时,可以把式子转换成
需要用这个求解答案需要先求出,问题就转换成了如何求解.
设,不唯一.
显然
通过可以求出
通过可以求出.
那么可以知道.
设为初始序列的最优翻转次数.
注意特判或时答案为.
最后答案乘上.