【11.25】【VP】 45 届 济南站

ALL:13
AC:4
补题:1
Rank:196

D 题 wa 了两发,每一发都要掉十几名几十名,有点哈人(


Matrix Equation

题意:

定义 01 正方矩阵的叉乘和点乘。现在给你宽为 n ( 1 ≤ n ≤ 200 ) n(1\leq n\leq 200) n(1n200) 的 01 正方矩阵 A , B A,B A,B ,问你有多少种同等大小的矩阵 C C C 满足 A × C = B ⊙ C A\times C=B\odot C A×C=BC 。方案数对 998244353 998244353 998244353 取模。

思路:VP 时打了两个小时的表,最佳结果是只过了样例。

考虑固定 j ∈ [ 1 , n ] j\in[1,n] j[1,n] ,这样我们有 n n n 个 01 变量 C i , j C_{i,j} Ci,j 。我们枚举 i ∈ [ 1 , n ] i\in[1,n] i[1,n] ,可以构建出 n n n 个包含 C i , j C_{i,j} Ci,j 的多元方程,形式如:

∑ k = 1 n ( A i , k ⋅ C k , j ) % 2 = B i , j ⋅ C i , j \sum_{k=1}^n(A_{i,k}\cdot C_{k,j})\%2=B_{i,j}\cdot C_{i,j} k=1n(Ai,kCk,j)%2=Bi,jCi,j

构建出 n n n 个方程之后,高斯消元,得到自由元的数量 c j c_j cj ,累加起来为 c = ∑ c j c=\sum c_j c=cj ,答案即为 2 c 2^c 2c

该朴素思路时间复杂度为 O ( n 4 ) O(n^4) O(n4) ,但是能跑 706 ms ,估计是跑不满 n 4 n^4 n4

AC代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=54997315

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值