[ARC071E] TrBBnsformBBtion
前言
模拟赛 \(\rm{T2}\) , 这下真是黄了
赛场偶遇 \(\rm{div \ 2} \ C\) , 本来就战胜不了
思路
观察 \(\rm{subtask \ 2}\) 可知, 如果全为 A 的串之间长度相差为 \(3\) 的倍数, 那么可以互相转化
继续观察
通过一些手模, 你发现
BA \(\to\) AAA, AAA \(\to\) BBBBA \(\to\) BA
BAAA \(\to\) B, B \(\to\) AA \(\to\) BBA \(\to\) BAAA
BBBAAA \(\to\) BBB, BBB \(\to\) BAAAA \(\to\) BBBAAA
你发现一个变换一定可以通过另一种方式变换回来
- 对于
A\(\to\)BB\(\to\)AAAA, 相当于自增 \(3\) 位,B\(\to\)AA\(\to\)BBBB同理 - 考虑删除操作显然相当于自减 \(3\) 位
- 考虑
A\(\to\)BB\(\to\)BAA, 相当于自增 \(1\) 位, 给另外一个字符增 \(1\) 位,B\(\to\)AA\(\to\)ABB同理 - 考虑
BAA\(\to\)AAAA\(\to\)A, 相当于自减 \(1\) 位, 给另外一个字符减 \(1\) 位,ABB\(\to\)BBBB\(\to\)B同理
观察发现任何一种操作都可以被上面这几种操作概括, 你注意到上面这几种操作都是可逆的, 这是一个重要的性质
因为可逆, 想到只要能把两个串串同时变成一个串串, 即可, 所以先把两个串串都变成以 A 组成的串串, 然后同 \(\rm{subtask \ 2}\) 处理即可
另外一种思考方式:
考虑 \(\rm{subtask \ 3}\) , 你发现可逆操作可以直接对两个串串做变换, 于是想到还是把 \(T\) 串变成以 A 组成的串串, 进一步想到把 \(S, T\) 都变成以 A 组成的串串, 结束
总结
操作类问题可以考虑找可逆性
有了这个性质就可以把问题简化成变换到同一种形式

浙公网安备 33010602011771号