2022.10.4 闲话

问一下,是只有我除了洛谷首页 502 Bad Gateway / 504 Gateway Time-out 别的都能访问吗?


\[\color{red}{\texttt{印度洋暖流温润着纽约,四季丰沛的雨水造就了一望无际的大草原。}} \]

\[\color{red}{\texttt{蒙古包是纽约最独特的一道风景线,每至二月中旬,纽约的土著傣族人民又开始半年一度的转场了。}} \]


早阅览读期刊《数理化解题研究》,在一堆弔题中提取出了一道有趣的组合计数 .

Original C

有四种颜色 CMYK,每种颜色有 \(10\) 个不同的小球,分别标号 \(1\dots 10\) .

从这 \(40\) 个小球中取 \(4\) 个,要求颜色互不相同,标号互不相邻,问方案数 .

解:首先随便放 \(6\) 个无标号无颜色的小球 .

然后插 \(4\) 个到空位里,这样的方案数是 \(\dbinom74\),然后从左到右标号,这样标号就不相邻了 .

四个小球每个分一种颜色即可,方案数是 \(4!\) .

乘法原理,答案就是 \(4!\dbinom74\) .

这里需要一个有序一个无序才能数对 .

这看起来太平凡了,我们先来一个二元的推广情况:

Discrete Discreteness

一个 \(n\times m\) 矩阵,选出 \(k\) 个数,满足任意两数所在行、所在列均不相邻 .

问方案数 .

也是一样:首先随便放 \(n-k\) 个无标号无颜色的小球 .

然后插 \(k\) 个到空位里,这样的方案数是 \(\dbinom {n-k+1}k\),然后从左到右标号作为行号,这样行就不相邻了 .

\(k\) 个数再限制列,类似的,方案数是 \(\dbinom {m-k+1}k\) .

乘法原理,顺便乘一个 \(k!\) 让它变得有序,则答案就是 \(k!\dbinom {n-k+1}k\dbinom {m-k+1}k\) .

额看起来这个思路比较牛逼,但是推广之后是不是就显然的不能再显然了 .

来看看多元情况:

Discrete Discreteness II

有一个序列 \(\{a_n\}\),令集合 \(\displaystyle S=\prod_{i=1}^n[1,a_i]\),其中乘法左结合且为笛卡尔积,在集合 \(S\) 中选出 \(k\) 个元素 \(v_{1\dots k}\),满足:

  • \(v_{1\dots k}\) 互不相同 .
  • \(v_{1\dots k}\) 的每一维都由不相邻的 \(k\) 个整数组成 .

问方案数,答案对给定素数 \(p\) 取模,保证 \(p>\max\{a_i\}\) .

  • Task 1:\(1\le k\le n,a_i\le 10^6\) .
  • Task 2:\(1\le k\le n\le 10^3\)\(1\le a_i\le 10^9\) .

根据上一题 Discrete Discreteness 的分析我们可以知道答案就是

\[k!\prod_{i=1}^n\dbinom {a_i-k+1}k \]

注意到这个题有数据范围了:

  • Task 1:\(\Theta(n+L)\) 递推组合数 .
  • Task 2:\(\Theta(n\sqrt L\log L)\) 快速阶乘算法 .

其中 \(L=\max\{a_i\}\) 是值域 .

如果模数固定也可以分段打表,但是有点 op 就不说了 .

好像这个问题到这里就结束了?发现内层这个插入法太平凡了啊,我们能不能再让它有趣一点呢?

Similar DD I

有一个序列 \(\{a_n\}\),令集合 \(\displaystyle S=\prod_{i=1}^n[1,a_i]\),其中乘法左结合且为笛卡尔积,在集合 \(S\) 中选出 \(k\) 个可能相同的元素 \(v_{1\dots k}\) .

两个方案不同,当且仅当两个 \(v_{1\dots k}\) 的每一维组成的可重集分别不同 .

问方案数,答案对 \(998244353\) 取模 .

\(1\le n\le 10^3\)\(1\le k\le a_i\le 10^{10^4}\)\(a_i-2k\le 10\) .

这个的技巧性就开始上来了啊 .

根据 Discrete Discreteness II 的结论可以得到答案就是

\[k!\prod_{i=1}^n{a_i-k+1\brace k} \]

其中 \(\displaystyle{n\brace k}\) 是第二类斯特林数 .

每个斯特林数分别算,当多组询问做,令 \(p=k\)\(q=a_i-2k+1\),则条件 \(a_i-2k\le 10\) 就是 \(q\le 11\) .

然后要求的就是 \(\displaystyle{{p+q}\brace p}\) 了 .

注意到 \(q\) 非常小,所以应用一个组合恒等式

\[\displaystyle{{p+q\brace p}=\sum_{k=0}^q\left\langle\!\!\left\langle\begin{matrix}q\\k\end{matrix}\right\rangle\!\!\right\rangle\dbinom{p+2q-k}{2q}} \]

这个在具体数学中有指出,其中 \(\displaystyle\left\langle\!\!\left\langle\begin{matrix}n\\m\end{matrix}\right\rangle\!\!\right\rangle\) 是二阶欧拉数 .

二阶欧拉数的范围非常小,可以 \(\Theta(q^2)\) DP 求出来 .

然后可以根据斯特林多项式

\[\sigma_n(x)=\dfrac{\displaystyle{x\brack x-n}}{x^{\underline{n+1}}} \]

的次数为 \(n-1\),分母下降幂的次数是 \(n+1\) 得到 \(\displaystyle{x\brack x-n}\) 的关于 \(x\) 次数为 \(2n\) 的多项式 .

第一类斯特林数可以由下面的恒等式推到二阶欧拉数,以得到其次数:

\[\displaystyle{{x\brack x-n}=\sum_{i=1}^n}\displaystyle\left\langle\!\!\left\langle\begin{matrix}n\\i\end{matrix}\right\rangle\!\!\right\rangle\dbinom{x+i}{2n} \]

然后经过一些平凡的步骤可以得到 \(\displaystyle{{x+n\brace x}}\) 的次数为 \(2n\) .

这样对于 \(n=0\dots 11\)(这个 \(n\) 也就是原来的 \(q\))分别算一下 \(x\) 比较小的时候的值然后插值即可得到多项式各项系数 .

然后把 \(p\) 的值代入即可,这个可以用秦九韶算法,于是时间复杂度为 \(\Theta(q)\) .

于是整个问题的时间复杂度就是 \(\displaystyle \Theta\left(n\sum_i(a_i-2k)\right)\),数据范围看起来有点松,实际上是再大点估计都读不进来了 /qd

感觉问题到这里就差不多了,再难也没有什么意义了,当然你可以通过这个皮套出很多题来,这个放个题,解答略 .

Similar DD II

有一个序列 \(\{a_n\}\) 和一个整数 \(z\),令集合 \(\displaystyle S=\prod_{i=1}^n[0,a_i]\),其中乘法左结合且为笛卡尔积,在集合 \(S\) 中选出若干互不相同的元素 \(v_{1\dots k}\),满足对于 \(v\) 的每一维 \(v'\)

  • \(\{v'\}\) 单调递增 .
  • 至少存在一个整数 \(q\) 使得存在整数 \(i\) 使得 \(0<v'_i\le qz<v'_{i+1}\) .

问方案数,答案对 \(10^9+9\) 取模 .

\(1\le n\le 10^6\)\(1\le z\le a_i\le 10^9\)\(z\mid \underset i{\gcd}(a_i)\) .

posted @ 2022-10-04 17:08  Jijidawang  阅读(102)  评论(7编辑  收藏  举报
😅​