证明:矩阵乘法存在 O(n^2) 做法
Determination_Y · · 休闲·娱乐
听说在 CSP 前写专栏能增加
申明:本文没有使用 AI。
前置知识
前缀和 / 积处理即可。
一些引理
引理 1:对于任意实数
a,b ,满足\max(a^2, b^2) \ge ab 。
证明:
什么,你说这里只有
证明 (C++ Remix):
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf = 'inf';
mt19937 rnd(316381099);
ll Rnd(ll l, ll r) { return l + rnd() % (r - l + 1); }
int main() {
for (int i = 1; i <= 316381099; i++) {
ll x = Rnd(-inf, inf);
ll y = Rnd(-inf, inf);
if (max(x * x, y * y) < x * y) {
cout << "滚木";
break;
}
}
return 0;
}
注意到这份代码什么都没输出。
什么,你说这份代码没有覆盖所有的可能性?
「5.对使用随机数和随机算法的程序的申诉,不予受理;」—— CCF
证毕。
引理 2:
+ 和\times 都是实数。
证明:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll add = '+';
const ll mul = '×';
int main() {
srand(316381099);
int x = rand();
return 0;
}
注意到这份代码通过了编译。
什么,你说什么?
「5.对使用随机数和随机算法的程序的申诉,不予受理;」—— CCF
证毕。
证明 (\times,+) 矩阵积存在 O(n^2) 做法
矩阵内积(Frobenius 内积):对于两个矩阵
A,B ,其内积常记为(A,B) = \operatorname{tr}(A^TB) 。
钦定
(+,+) = \operatorname{tr}(++) = ++ (\times,\times) = \operatorname{tr}(\times\times) = \times\times (\times,+) = \operatorname{tr}(\times+) = \times+
代入
注意到读入矩阵至少需要
???
什么,你说读入矩阵和计算矩乘的复杂度都可以达到
「申诉服务费每题50元」—— CCF。
前面忘了,可以通过洛谷私信联系我获取缴费通道,绝对不是因为后面忘了。
316381099。