www 被大佬|

wscqwq

园龄:2年粉丝:2关注:3

NANDrepeatedly

[ABC310E] NAND repeatedly

规律

  1. 对于每个 0,答案必为 1。(开头除外)
  2. 对于每个连续的 1 段,必定为 01 交替。(1 在第一/二个的 1 段除外,为 10 交替)。

这两点比较显然,在此不给出证明。

考虑每次删去头部元素会产生的影响;

  1. 如果前两个是 0,1,本来 01=1,1=1,无影响。

  2. 1,0,答案先 2(因为本来少了 1,又因为 1,0 的运算没了),其次,如果此时的第三位是 1,那么如果这个连续段的 1 个数为奇数,答案再增加 1

  3. 0,0,先 1,然后同 2.

  4. 1,1,如果第三位是 0,无影响(1,1,0,答案为 1,0,11,01,1)。如果第三位为 1,算上前两个一共连续偶数个,则不变,否则 1

综上,每次维护处理到的第三位往后连续 1 个数即可。

复杂度 O(n)

处理时需格外注意开头就是 1 的连续段。

AC

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17568856.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(12)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起