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

题目描述

学姐 4 了。

\(n\) 个糖果和 \(n\) 个药片,它们要进行一一配对。每个糖果或药片都具有互不相同的能量值,要求配对后,糖果比药片能量高的对数,比剩下的对数恰好多 \(k\),求方案数。

数据范围:\(1\le n\le 2000\)

题解

本来是冲着学姐来的,结果发现自己对容斥理解巨差,甚至想到二项式反演以为不能用。可能是我没有脑子,或者没有脑袋。

考虑一个朴素的三方 dp:将糖果和药片混在一起排序,记 \(f_{i,j,k}\) 表示前 \(i\) 个物品组成了 \(j\) 个糖果-药片对和 \(k\) 个相反的对。没有任何优化空间。

发现我们需要记录 \(j\)\(k\) 是因为一些药片被延后处理,来保证它组成药片-糖果对。如果我们不去约束这一点,也就是只考虑钦定 \(j\) 个糖果-药片对,剩下的任意组合,那么就是自然的平方 dp。

接下来记恰好 \(i\) 个糖果-药片对的方案数为 \(g_i\),则 \(f_i = \sum\limits_{j=i}^n\binom{j}{i}g_j\),二项式反演求出所需要的项即可。

posted @ 2023-05-18 09:22  kyEEcccccc  阅读(46)  评论(0)    收藏  举报