PKUSC 2021 D1T1 题解

本文介绍了一种计算n×n矩阵经过特定变换t次后的元素值的方法,利用递推公式和矩阵乘法技巧,实现复杂度为O(n²+logk)的解决方案,适合大规模矩阵操作。

Description

给定矩阵 aaa

定义一次变换如下: 对于每一个 ai,ja_{i,j}ai,j同时将其变为
∑k=1nai,k+∑k=1nak,j\sum_{k=1}^n a_{i,k}+\sum_{k=1}^n a_{k,j}k=1nai,k+k=1nak,j

求变换 ttt 次后,aaa 的每一位是多少。

1≤n≤1000,0≤t≤1091 \le n \le 1000,0 \le t \le 10^91n1000,0t109

Solution

我们构造一个 n×nn \times nn×n 矩阵 GGG,其每一位都是 111。令 ArA^{r}Ar 表示对 AAA 进行行变换(即 ∀ai,j\forall a_{i,j}ai,j,将其变为第 iii 行所有数的和),AcA^{c}Ac 表示对 AAA 进行列变换(即 ∀ai,j\forall a_{i,j}ai,j,将其变为第 jjj 列所有数的和),则有

Ar=AGAc=GAA^{r}=AG \\ A^{c}=GAAr=AGAc=GA

A′A'A 表示对 AAA 进行变换,则
A′=AG+GAA'=AG+GAA=AG+GA

从而
A′′=AG2+2GAG+G2AA''=AG^2+2GAG+G^2AA=AG2+2GAG+G2A

更进一步的

A(k)=∑i=0k(ki)GiAGk−iA^{(k)}=\sum_{i=0}^k {k \choose i} G^i A G^{k-i}A(k)=i=0k(ik)GiAGki

我们考虑 GxAGk−xG^x A G^{k-x}GxAGkx 是什么。首先,不难发现 GxG^xGx 是一个满足 ∀Gi,j=nx−1\forall G_{i,j}=n^{x-1}Gi,j=nx1 的矩阵,从而

(GxA)i,j=∑w=1nnxAw,j=nx∑w=1nAw,j\left(G^x A\right)_{i,j}=\sum_{w=1}^n n^x A_{w,j}=n^x \sum_{w=1}^n A_{w,j}(GxA)i,j=w=1nnxAw,j=nxw=1nAw,j

从而
(GxAGk−x)i,j=∑w=1n(GxA)i,wGw,jk−x=∑w=1nnk−x−1nx−1∑p=1nAp,w=nk−2∑w=1n∑p=1nAp,w=nk−2×Sum(A)\begin{aligned} \left(G^x A G^{k-x} \right)_{i,j} &=\sum_{w=1}^n (G^x A)_{i,w} G^{k-x}_{w,j} \\ &= \sum_{w=1}^n n^{k-x-1} n^{x-1} \sum_{p=1}^n A_{p,w} \\ &=n^{k-2} \sum_{w=1}^n \sum_{p=1}^n A_{p,w} \\ &= n^{k-2} \times Sum(A)\end{aligned}(GxAGkx)i,j=w=1n(GxA)i,wGw,jkx=w=1nnkx1nx1p=1nAp,w=nk2w=1np=1nAp,w=nk2×Sum(A)

不过这个结论似乎在 x=0x=0x=0x=kx=kx=k 的时候并不正确。于是保留这两项,得到最终的答案

(nk−2Sum(A)∑i=1k−1(ki))+GkA+AGk\left(n^{k-2} Sum(A)\sum_{i=1}^{k-1} {k \choose i} \right)+G^kA+AG^k(nk2Sum(A)i=1k1(ik))+GkA+AGk

GkAG^kAGkAAGkAG^kAGk 都可以快速计算。同时
∑i=1k−1(ki)=2k−2\sum_{i=1}^{k-1} {k \choose i}=2^k-2i=1k1(ik)=2k2

总复杂度 O(n2+log⁡k)O(n^2+\log k)O(n2+logk),代码不到 303030 行。场上人均爆切,不过菜鸡 ducati\color {grey} \text{ducati}ducati 在赛后思考了好长时间也没有想到第一步,实在令人唏嘘。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值