CF1919E Counting Prefixes

CF1919E Counting Prefixes

Rating:2600

题目大意

有一个由 -11 构成的数列 A。告诉你它的前缀和升序排序的数列 P。求有多少个满足方案的数列 A

多组数据,其中 A 的长度 n 有。

n5000

解题思路

首先我们考虑枚举 s=A

我们考虑先往右边“走”。构建一个序列 {1,1,,1,1,1,,1}

接着我们往里面插入一些 {1,1} 这样会使得当前位置 P 以及 P1 多出现一次。

这样我们可以考虑从最高点 Pn 开始往下补全它们的出现次数。

若一个位置 Pi 需要出现 Ci 次,已经出现过 Bi 次,我们将一些 {1,1} 插入到 Bi 个位置中。根据排列组合知识可以得到其对答案的贡献为。

(Ci1Bi1)

我们在 O(n2) 的时间复杂度内解决了这个问题。

代码实现

代码实现中有非常多需要注意的细节。

  • 对于起点情况的处理
  • 对于不合法情况的判断
  • 初始序列的构建

建议先参考代码,仔细思考。

参考代码

posted @   DeepSeaSpray  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示