P4859 已经没有什么好害怕的了

显然我们可以解出 ai>bi,ai<bi 的分别有 x,y 组。

首先,我们把这个东西当成一个配对,可以考虑一下把所有的数合并到一起排序。

然后显然可以有一个 dp,记 dpi,cnt,p1,p2 表示我们目前考虑到了第 i 个数,当前满足 ai>bi 的数对有 cnt 个,前 i 个数里剩下没有配对的 a,b 分别有 p1,p2 个。

转移是显然的,总复杂度 O(n4)。考虑优化,没有优化。

我们发现限制“恰好” k 个着实有些问题,我们考虑容斥花费一定时间的代价把它转化成“至少” k 个。

我们设恰好 k 个是 f(k),至少 k 个是 g(k),我们有

g(k)=i=knf(i)(ik)

由二项式反演,我们可以得到

f(k)=i=kn(1)ikg(i)(ik)

我们成功以 O(n) 的代价转移了问题,现在考虑子问题怎么做。

不会。

“至少” k 个该怎么解决呢?我们考虑只去限制这 k 个组。

考虑记 dpi,j 表示我们考虑到 ai,当前至少有 j 个组满足条件,记 ci 表示有多少个 b 可以和 ai 配成合法对。

dpi,j=dpi1,j+(ci(j1))dpi1,j1

那么我们有

g(k)=dpn,k(nk)!

至此,我们在 O(n2) 内解决了问题。

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