专栏文章

题解:P13274 [NOI2025] 三目运算符

P13274题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@miousc32
此快照首次捕获于
2025/12/03 01:29
3 个月前
此快照最后确认于
2025/12/03 01:29
3 个月前
查看原文

前言

不是,什么年头连我都会做两道国赛题了,这题有点水。

思路

这题一眼线段树。
首先想到先考虑长度最小时的状况,即长度为 33 的串怎么变。
我们发现除了 101101110110 以外的串都不会变化,所以那些形式的串我们暂且不管。
先说说 110110,容易发现 110X110X 在一次变化后会变成 X110X110,这里的 XX 表示未知数字。然后你会发现这个变化似乎很像一个操作,即把 110110 整体往后移一格。因此,若线段树树维护区间存在 110110,那么要找到最左边的 110110 的开头位置,计为第 xx 位,则答案为 lenx+1len-x+1lenlen 为区间长度,区间合并时答案做加法,如果你合并有疑问下面会说。
再说说 101101101101 只能变成 XX0XX0,其中有作用的只有 110110,似乎问题棘手起来,但容易发现的是,这个 110110 必须是前面的 110110 右移过来,所以这个情况应该扔给上面所讲的那个部分处理。
好,怎么合并呢?我们只需要几个判断语句在合并时判断中间夹不夹着 101101110110 即可。
话说不会合并的也不会来做这题吧。
现在带上区间修改,由于 0101 反转,再维护一下 010010001001 即可,毕竟人家摇身一变,就反转成 101101110110 了。
好了,讲完了。

评论

1 条评论,欢迎与作者交流。

正在加载评论...