1 条题解
-
0
题解
思路
一个二进制串由首字符和相邻位置是否发生变化唯一确定。处理到右端点 时,只需记录最近一次变化发生在哪个相邻位置。
做法
令状态 表示前缀 最近一次变化位于 之间, 表示尚未变化。追加第 位时,不变化会保留 ;发生变化会把新状态设为 ,其方案数是上一层全部状态之和。
对所有右端点为 的约束:若 ,区间内不能有变化,故 ;若 ,区间内必须有变化,故 。这些条件把合法状态限制为一个区间,清零区间外状态即可。首字符有两种选择,所以初始状态计数为二。
子任务一枚举所有 个字符串。子任务二只有相等约束,用并查集合并必须相同的相邻位置,答案为二的连通块数次方。
复杂度
满分算法时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1345
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者