一些数数杂题

突然发现还是按照算法记录索引方便一点,反正只需要记录想了很久或者不会做的题。

QOJ 2539 A

首先肯定要将给出的两个矩阵加加减减,看看会得到什么。

容易凑出一个 \(1\times 1\)\(3\),所以说所有数字可以 \(\bmod 3\)

然后会发现 \(\bmod 3\) 意义下第二个矩阵可以由第一个矩阵得到,所以只需要考虑第一个矩阵,也就是

\[\begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix} \]

这个矩阵在 \(\bmod 3\) 意义下可以获得的矩阵个数。

注意到可以使用经典的,从左上角调整到右下角的策略来生成,观察一下矩阵的性质就可以发现充要条件是每行每列的和 \(\bmod 3=0\)

赛时想了很久这个怎么构造,非常难,但发现这种多限制条件的东西还是可以用单位根反演做。

\[\text{answer}=\sum_{A} \prod_{i=1}^n [\sum_{j=1}^m A_{i,j}\bmod 3=0] \prod_{j=1}^m [\sum_{i=1}^n A_{i,j}\bmod 3=0]\\ =\frac{1}{3^{n+m}}\sum_{A} (\prod_{i=1}^n \sum_{k=0}^2 \prod_{j=1}^m w_{3}^{kA_{i,j}}) (\prod_{j=1}^m \sum_{k=0}^2 \prod_{i=1}^n w_{3}^{kA_{i,j}})\\ =\frac{1}{3^{n+m}}\sum_{A} ( \sum_{c,c_i\in [0,2]} \prod_{i=1}^n \prod_{j=1}^m w_{3}^{c_iA_{i,j}}) (\sum_{r,r_i\in [0,2]} \prod_{j=1}^m \prod_{i=1}^n w_{3}^{r_jA_{i,j}})\\ =\frac{1}{3^{n+m}}\sum_{A} \sum_{c,c_i\in [0,2]} \sum_{r,r_i\in [0,2]}\prod_{i=1}^n \prod_{j=1}^m w_{3}^{(c_i+r_j)A_{i,j}}\\ =\frac{1}{3^{n+m}} \sum_{c,c_i\in [0,2]} \sum_{r,r_i\in [0,2]}\sum_{A}\prod_{i=1}^n \prod_{j=1}^m w_{3}^{(c_i+r_j)A_{i,j}} \]

注意到后面枚举 \(A_{i,j}\),每个位置是独立选然后乘起来的,所以令 \(f(x)=\sum_{i=0}^k w_{3}^{ix}\),那么可以化简为

\[=\frac{1}{3^{n+m}} \sum_{c,c_i\in [0,2]} \sum_{r,r_i\in [0,2]}\prod_{i=1}^n \prod_{j=1}^m f(c_i+r_j) \]

注意到后面的式子只和,\(c,r\) 里面分别有几个 \(0,1,2\) 有关,暴力可以获得一个 \(O(n^4)\) 的做法。

如果我们只枚举 \(r\),令 \(m_0,m_1,m_2\) 分别表示 \(r\)\(0,1,2\) 的个数,那么可以化简为:

\[=\frac{1}{3^{n+m}} \sum_{c,c_i\in [0,2]} \sum_{m_0+m_1+m_2=m} \binom{m}{m0,m1,m2} \prod_{i=1}^n\prod_{j=0}^2 f(c_i+j)^{m_j}\\ =\frac{1}{3^{n+m}} \sum_{m_0+m_1+m_2=m} \binom{m}{m0,m1,m2} \sum_{c,c_i\in [0,2]}\prod_{i=1}^n g(c_i)\\ =\frac{1}{3^{n+m}} \sum_{m_0+m_1+m_2=m} \binom{m}{m0,m1,m2}(g(0)+g(1)+g(2))^n \]

于是最后复杂度 \(O(n^2\log n)\),这题还是很考验化简式子,交换求和顺序的能力的。

QOJ 2242 K

把式子调整一下:

\[a-b> d-c\\ a-b\ge c-d \]

会发现 \(a-b\) 是个很重要的量,然后 \(a,b\)\(c,d\) 是比较独立的。

\(x=a-b\),我们分别计算对于 \(x\)\(a,b\) 的方案和 \(c,d\) 的方案。

\[\sum_{x=0}^{A} f(x)\times g(x) \]

然后发现 \(f(x),g(x)\) 都是,分段的低次多项式,因此我们直接插值。

关键就在于找到分界点,这个观察一下 \(x\) 变大的时候,什么时候 \(f,g\) 的变化会变化就行。

\(g(x)\) 求法具体比较答辩。

\(f,g\) 都是低次多项式,怎么证明点积起来是低次多项式呢/? 毛猜猜感觉比较对。

posted @ 2025-10-07 14:41  houzhiyuan  阅读(17)  评论(0)    收藏  举报