2025牛客多校第六场D题解
题目大意:
给出大小为 n∗nn*nn∗n 的矩阵 AAA,需要满足以下要求。
1.元素均小于等于 mmm ;
2.第一行元素全为0,每行元素单调不减
3.对于任意的 1≤i<k≤n1\leq i < k \leq n1≤i<k≤n 和 1≤j<l≤n1\leq j < l \leq n1≤j<l≤n,均有 Ai,j+Ak,l≤Ai,l+Ak,jA_{i,j} + A_{k,l} \leq A_{i,l} + A_{k,j}Ai,j+Ak,l≤Ai,l+Ak,j
4.1≤n,m≤5×1051 \leq n, m \leq 5 \times 10^51≤n,m≤5×105
将符合的方案数对 998244353 取模。
首先,我们观察 Ai,j+Ak,l≤Ai,l+Ak,jA_{i,j} + A_{k,l} \leq A_{i,l} + A_{k,j}Ai,j+Ak,l≤Ai,l+Ak,j 这个式子,可以对其进行公式的转换,令 k=i+1k=i+1k=i+1,l=j+1l=j+1l=j+1,及 Ai,j+Ai+1,j+1≤Ai,j+1+Ai+1,jA_{i,j} + A_{i+1,j+1} \leq A_{i,j+1} + A_{i+1,j}Ai,j+Ai+1,j+1≤Ai,j+1+Ai+1,j,进一步转换为 Ai+1,j+1−Ai+1,j≤Ai,j+1+Ai,jA_{i+1,j+1} - A_{i+1,j} \leq A_{i,j+1} + A_{i,j}Ai+1,j+1−Ai+1,j≤Ai,j+1+Ai,j,之后我们可以用差分数组 bi,jb_{i,j}bi,j 来表示 Ai,j+1−Ai,jA_{i,j+1}-A_{i,j}Ai,j+1−Ai,j,则有 bi+1,j≤bi,jb_{i+1,j} \leq b_{i,j}bi+1,j≤bi,j ,及位于同一列的差分元素单调不增,又因为题目所说的每行元素单调不减,也就相当于每行的差分元素均大于0,而给个元素小于 mmm 的条件也就相当于第一行的差分数组相加之和不大于 mmm ,至此,题目所求转换为以下内容:
求满足一下条件的大小为 n∗(n−1)n*(n-1)n∗(n−1)的矩阵 bbb 的个数。
1.第一行的所有元素相加不大于 mmm.
2.满足bi+1,j≤bi,jb_{i+1,j} \leq b_{i,j}bi+1,j≤bi,j ,及同一列的数组单调不增。
形象化的
我们不妨以第一列为例子,设第一列第一行的元素为 xxx,及 b1,1=xb_{1,1}=xb1,1=x,第一列我们可以在用一个差分数组 ccc 来表示,及 ci,j=bi,j−bi+1,jc_{i,j}=b_{i,j}-b_{i+1,j}ci,j=bi,j−bi+1,j,那么同一列中所有的 ccc 数组元素相加总和为 xxx,那么对于差分数组 ccc,其构成相当于将元素 xxx 分为可以为空的 nnn 份,并使得每份的相加之和为 xxx ,用隔板法的思想进行求解,那么方案数为(x+n−1n−1)\dbinom{x + n - 1}{n - 1}(n−1x+n−1)。
我们现在已经知道了第一列的求法了,那么我们如何推广到每一列呢?考虑到对于第一列的求法,其形式相当于将 b1,1b_{1,1}b1,1 个相同的小球放入 nnn 个盒子中,那么对于第 jjj 列,也是将 b1,jb_{1,j}b1,j 个相同小球放入 nnn 个盒子中,且满足 ∑i=1n−1b1,i≤m\sum_{i=1}^{n-1} b_{1,i}\leq m∑i=1n−1b1,i≤m,因为每一列的求解是相互不会影响的,那么我们就可以想到将 0 到 mmm 个相同小球放入 n∗(n−1)n*(n-1)n∗(n−1) 个盒子的方案数,因为转换为差分数组 ccc 后,矩阵中所有的差分数组 ccc 的总和即为第一行的差分数组 bbb 的和,换句话说,设第一行的数组 bbb 的总元素和为 ansansans,再将 ansansans 用隔板法分成可以为空的 n−1n-1n−1 份,然后对于每个分配的值再进行上述的分别隔板,其方案等价于将 ansansans 个相同的小球分成可以为空的 n∗(n−1)n*(n-1)n∗(n−1) 份,方案数为 ∑i=0m(i+n∗(n−1)−1i)\sum_{i=0}^{m} \dbinom{i + n*(n-1) - 1}{i}∑i=0m(ii+n∗(n−1)−1)
对于上述式子通过递推的方式已经可以过了,当然也可以对其进行进一步的更改,相当于将 mmm 个小球放入 n∗(n−1)+1n*(n-1)+1n∗(n−1)+1 个盒子的方案数,多出来的一个盒子是用来存放不需要的小球的,也就相当于前面的放入方法,那么总的方案数为(m+n∗(n−1)m)\dbinom{m + n*(n-1)}{m}(mm+n∗(n−1))。