1 条题解
-
0
题解
思路
先看长度为 的区间 :要让删去某个下标对应的边后两点连通,必须有 或 。
做法
把 记为
R,把 记为L,其余值记为X。若某处是R,结合它左侧的二元区间可知左侧也必须一直是R;L同理必须一直延伸到右端。由二元区间条件可得,一个好序列的类型串恰好是R…RXL…L(X恰有一个)或R…RL…L(没有X)。反过来,这两种结构对任意区间都能选取其R/L分界处或区间内的X作为删边位置,留下的边把连续顶点依次连成树,所以该刻画也是充分的。预处理
prefix[i]表示前 项都能取为R,suffix[i]表示从第 项起都能取为L。枚举没有X时的RL分界,以及唯一X的位置;两侧是否合法可由前后缀常数时间判断。若中心原值已确定,只需检查它不等于相邻下标;若为 ,中心在端点有 种选择,在内部有 种选择( 时为 种)。累加所有互不相交的结构即可。复杂度
时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1606
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者