信息
- ID
- 1678
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
不必记录当前 MEX 的具体值,只需记录前缀中已出现的不同整数个数。
设处理完前 i 个位置后恰有 j 个不同值的方案数为 dpj。若 Si+1=1,只能选当前 MEX,它是新值,所以当 j≤M 时转移到 j+1。若 Si+1=0,选已出现的值有 j 种,不同值个数不变;在未出现且不是 MEX 的值中选择有 M−j 种,不同值个数增加一。这两类选择已经穷尽所有合法的 Ai+1。
每层只依赖上一层,用滚动数组保存状态。
不同值个数不会超过 min(N,M+1),因此时间复杂度为 O(Nmin(N,M+1)),空间复杂度为 O(min(N,M+1))。