Xi Ruoyao преди 3 години
родител
ревизия
5cfc3bfbb3
променени са 1 файла, в които са добавени 84 реда и са изтрити 0 реда
  1. 84 0
      content/post/2021-nc-4.md

+ 84 - 0
content/post/2021-nc-4.md

@@ -0,0 +1,84 @@
++++
+date = "2021-07-26T21:22:00+08:00"
+draft = false
+tags = []
+title = "2021 牛客多校第 4 场"
+authors = ["xry111"]
++++
+
+# I. Inverse Pair
+
+## 题意
+
+输入一个数组,保证里面是一个排列,选择一些数组元素给他加 $1$,
+最小化操作后的逆序对数。
+
+## 做法
+
+因为是一个排列,而且只能加 $1$,增加某个数组元素时,
+一定不会与它后面的元素形成新的逆序对,
+只考虑与它前面元素比较时会减少逆序对就行了。
+
+如果 $a\_j = a\_i + 1$ 且 $j < i$,那么我们给 $a\_i$ 加 $1$
+就能减少一对逆序对,但是如果同时也给 $a\_j$ 加 $1$ 就减小不了。
+随便画一下会发现所有数可以连成一个二分图,
+可以将每个联通分量中 (除了没连边的) 所有黑点或者白点加 $1$,
+即可减少相应数目的逆序对。求一下原来的逆序对数然后搞一下就行了。
+
+# G. Product
+
+## 题意
+
+给定 $n, k, D$,求
+
+$$\\sum_{a\_1 + a\_2 + \\cdots a\_n = D, a\_i \geq 0}
+\\frac{D!}{\\prod (a\_i + k)!}$$
+
+## 做法
+
+这个式子就是
+
+$$\\sum\_{a\_1 + a\_2 + \\cdots a\_n = D} \\frac{D!}{\\prod a\_i !} =
+\\sum\_{\\{a\_i\\}} \\binom{D}{a\_1, \cdots, a\_n}$$
+
+改了一下,而这个改之前的式子众所周知就是 $n^D$。
+我们考虑怎么才能凑成这种样子。令 $b\_i = a\_i + k$,就成了
+
+$$\\frac{D!}{(D+nk)!}
+\\sum_{b\_1 + \\cdots b\_n = D + nk, b\_i \geq k}
+\\binom{D+nk}{b\_1, \cdots, b\_n}$$
+
+前面那个东西可以最后再算,
+后面和式如果没有那个<del>讨厌的</del> $b\_i \geq k$ 就是 $n^{D+nk}$,
+但是有这个条件以后就得把不满足它的容斥掉。
+设有 $m$ 个不满足条件的 $b\_i$,它们的和是 $\\Delta$,对应的容斥项是
+
+$$(-1)^m \\binom{n}{m}
+\\sum_{b\_1 + \cdots + b\_{n - m} = D + nk - \\Delta,
+\\Delta = \\sum\_{j=1}^m c\_j}
+\\binom{D + nk}{b\_1, \cdots, b\_{n - m}, c\_1, \cdots, c\_m}$$
+
+把 $b$ 和 $c$ 先分开,变成
+
+$$\\sum\_\\Delta \\binom{D + nk}{\\Delta}
+\\sum_{c\_i < k} \\binom{\Delta}{c\_1, \cdots, c\_m}
+\\sum_{\\{b\_i\\}} \\binom{D + nk - \\Delta}{b\_1, \cdots, b\_{n - m}}$$
+
+其中第一项就是个二项式系数 (但是由于出题人故意毒瘤人,不能预处理阶乘,
+需要一边求和一边递推);第三项就是 $(n - m)^{D + nk - \\Delta}$;
+至于第二项就是将 $\\Delta$ 拆分成小于 $k$ 的 $m$
+个未必递增的非负整数之和的方案数 $f(m, \\Delta)$,这个东西可以递推:
+
+$$f(i, j) = \\sum_{x < k} \\binom{j}{x} f(i - 1, j - x)$$
+
+然后就完了,答案是
+
+$$\\frac{D!}{(D+nk)!} \\sum_{m=0}^{n - 1}
+(-1)^m \\binom{n}{m}
+\\sum\_\\Delta \\binom{D + nk}{\\Delta} f(m, \\Delta)
+(n - m)^{D + nk - \\Delta}$$
+
+全场签完到就自闭这题,最后一分钟才过,剩下啥都没干。教训:
+* 推公式不能凭感觉,要用比较严格的数学符号,不然能写出差了 $114514$
+  项的公式。
+* 公式不对千万不要拿着暴力结果去猜,不然能猜出 $1919810$ 个错误公式。