专栏文章

题解:AT_xmascon21_c Count Me

AT_xmascon21_c题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@minsk65x
此快照首次捕获于
2025/12/02 07:39
3 个月前
此快照最后确认于
2025/12/02 07:39
3 个月前
查看原文
重新看了一遍这题,我还是认为这不是人类能做的题。
考虑没有 ? 怎么做,把操作看做倒着删除,删 n−1 次的不同方案数。
考虑钦定去重,并简化操作:钦定每次删 0 只能删一段中末尾的 0,删 1 只能删一段中开头的 1。
在开头补一个 0,在结尾补一个 1。那么操作被简化为:每次将一个子串 01 变成 0 或 1,不能删开头的 0 和结尾的 1。
在序列中每两个数字之间添加一个删除时间标记,总共 n+1 个。每次删一对 01 时就把它们之间的标记标为第几个删,然后删掉这个标记和其中一个数。
将一种合法的删除方案双射到删除时间标记的顺序,也就是一个 n+1 的排列。(所有方案总数为 (n+1)!,与打表的结果相同)
对于 0,要求右边的标记比左边的标记先删除。对于 1,要求左边的标记比右边的标记先删除。
于是把 0 看做 <,1 看做 >,? 相当于没有限制,就是计数符合不等关系的排列个数。使用分治 NTT 解决,具体可见 「LibreOJ NOI Round #2」不等关系,时间复杂度 O(nlog 2 n)。

评论

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

正在加载评论...