当前位置: 首页 > 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.jsqmd.com/news/35333/

相关文章:

  • 用 Kubernetes 原生机制取代 Nacos 注册中心:可行性、代价与边界
  • 获取设置开发授权激活统信uos
  • AtCoder Beginner Contest 431 ABCDEF 题目解析
  • 基于单片机的智能洗碗机设计 - 指南
  • 实用指南:AI学习日记——深度学习
  • 赫尔曼黑塞《德米安》—生活之难,难在直面内心的自己
  • 中科麒麟passwd弱密码授权
  • 暴字迹
  • 体验CodeBuddy免费领取轻量云服务器
  • Git 命令完全手册
  • AT_dwacon6th_prelims_e Span Covering
  • 打开2个rider项目(窗口),从其中一个窗口拷贝到另一个窗口保存后,会自动跳回第一个窗口,如何保存后留在当前窗口
  • 算起计算器APP,好看好用的多功能计算器
  • 吴恩达深度学习课程二: 改善深层神经网络 第二周:优化算法(二)指数加权平均和学习率衰减
  • *题解:P1712 [NOI2016] 区间
  • Day 20
  • 考试(高二上)
  • rustfs一键脚本配置方式
  • Allegro:如何手动在PCB中添加元器件以及删除元器件
  • 银河麒麟KylinV10-sp3操作系统桌面环境安装
  • 重练算法(代码随想录版) day4 - 链表part2
  • 实用指南:【第十七周】机器学习笔记06
  • 耄大厨——AI厨师智能体(3-程序调用)
  • flask: 保存异常时的错误信息和堆栈到日志
  • 2020:【例4.5】第几项
  • 深入解析:【深入浅出PyTorch】--6.2.PyTorch进阶训练技巧2
  • Django `models.Field` 所有常见安装参数的完整清单与说明表
  • Java Redis “Sentinel(哨兵)与集群”面试清单(含超通俗生活案例与深度理解) - 实践
  • 应用于ElasticSearch的C++ API——elasticlient - 教程
  • China Collegiate Programming Contest (CCPC) Jinan Site (The 3rd Universal Cup. Stage 17: Jinan) 题解