「CCO 2023」Flip it and Stick it 题解

一道比较有点思维难度的分类讨论题。

\(l=1\) 的时候可以直接判断,比较简单。

\(l=2\) 分为 \(11\)\(10\) 两类,其他情况都可以由这两类翻转而来。

\(11\) 类,1 的个数肯定不能大于 $\lceil \frac{len1}{2} \rceil $,否则就是无解的。若有解,肯定可以做到每一个操作都减少一个相邻的 \(1\),答案是 11 的数量。

\(10\) 类,最终答案肯定是 \(0000000111111\) 直接数一下有多少个连续不与首相连的 0 段。

\(l=3\) 分为 \(111,110,101\) 三种情况。

\(101\) 是最简单的,就直接数一下个数即可。

\(110\) 是 $\lceil \frac{cnt}{2} \rceil $ 稍微模拟一下就可以知道了。

\(111\) 比较麻烦,首先判无解,如果 \(cnt>\lceil len/3 \rceil*2 + len % 3\) 无解。否则则是通过构造使得没有三个连续的 \(1\) ,对于一个连续的 1 串我们可以贪心的转化成 2+(len-2) 的形式,这样我们使用的步数肯定是最少的,找到后面的一个可以翻转的进行翻转即可

posted @ 2026-02-07 13:47  hnczy  阅读(40)  评论(0)    收藏  举报