当前位置: 首页 > news >正文

CF285G AGC003D

给定 \(n, k\),问有多少个长度为 \(n\) 的排列 \(p\),满足恰好有 \(k\)\(i\) 使得 \(|p_i - i| = 1\)(称这个 \(i\) 为好的)。

\(k \le n \le 1000\)

\(g(k)\) 表示恰好\(k\) 个好的 \(i\) 的排列数。 这玩意是不好求的,但是如果要求 \(f(k)\) 表示选出 \(k\) 个好的位置,剩下的随意(即至少 \(k\) 个)的话就看起来可做一些。不难发现 \(f, g\) 之间的关系:

\[f(k) = \sum\limits_{i}^n \binom{i}{k} g(i) \]

根据二项式反演:

\[f(k) = \sum\limits_{i = k}^n \binom{i}{k} g(i) \iff g(k) = \sum\limits_{i = k}^n (-1)^{i - k} \binom{i}{k} f(i) \]

接下来就是求 \(f\) 了:AT_agc005D


子问题其实就是有若干条链,选 \(k\) 条边(不能有重复的点)的方案数,最后乘个 \((n - k)!\) 表示剩下的点的匹配方式。跑个 DP 即可。

运用二项式反演,将“恰好”转化为“至少”/“至多”,变成另一个问题进行计算。

http://www.gsyq.cn/news/44125.html

相关文章:

  • 用 Kubernetes 原生机制取代 Nacos 注册中心:可行性、代价与边界
  • 获取设置开发授权激活统信uos
  • 基于单片机的智能洗碗机设计 - 指南
  • 赫尔曼黑塞《德米安》—生活之难,难在直面内心的自己
  • 安装openjdk21
  • 暴字迹
  • 体验CodeBuddy免费领取轻量云服务器
  • TOYOTA SYSTEMS Programming Contest 2025(AtCoder Beginner Contest 431)
  • VMware开机自启虚拟机及报错修复
  • AI浪潮下的冷思考:机遇、风险与未来
  • 算起计算器APP,好看好用的多功能计算器
  • 鸿蒙语言基础学习经验分享:从困惑到渐入佳境
  • 修复达梦EFCore驱动布尔类型兼容问题
  • 2021:【例4.6】最大公约数
  • 考试(高二上)
  • 详细介绍:风机水泵改软起技术分析(XX公司)
  • Entry HDL原理图导出料单设置步骤
  • Allegro:如何手动在PCB中添加元器件以及删除元器件
  • 计算机毕业设计选题推荐:基于SpringBoot和Vue的快递物流仓库管理系统【源码+文档+调试】 - 实践
  • Camsys 时间戳信息简介
  • Django `models.Field` 所有常见安装参数的完整清单与说明表
  • Java Redis “Sentinel(哨兵)与集群”面试清单(含超通俗生活案例与深度理解) - 实践
  • 操作系统中的索引节点存放什么数据?
  • CICD程序选型指南,Jenkins vs Arbess哪一款更好用?
  • csp-j/s历险记
  • 2025年重袋包装机品牌排行榜:十大实力厂家综合评测
  • 软考完结篇
  • 深度学习优化算法深入分析:从 SGD 到 LAMB - 指南
  • 记录一些生活。
  • visio绘制带公式图片作为latex插图