很疑惑,不知道为什么答案错误,总的运算是跟矩阵乘法一样的,能过前70%,但是最后30%报错,大小存储也合适,时间也没超。 按理说能过70%后面也能过,除非是内存问题或者超时了。···对比了别人的代码,修改了我自己代码中可能有问题的部分代码后重新提交cpp #include<iostream> using namespace std; typedef long ...
int main(){ int n,d;//n为矩阵的行数,d为列数 cin>>n>>d; //输入三个n行d列的矩阵,KT为K转置 long long Q[n][d],KT[d][n],V[n][d]; long long W[n]; //输入三个矩阵 for(int i =0;i<n;i++) for(int j=0;j<d;j++) cin>>Q[i][j]; for(int i =0;i<n;i++)...
高斯消元法可以用来找出一个可逆矩阵的逆矩阵。设A 为一个N * N的矩阵,其逆矩阵可被两个分块矩阵表示出来。将一个N * N单位矩阵 放在A 的右手边,形成一个N * 2N的分块矩阵B = [A,I] 。经过高斯消元法的计算程序后,矩阵B 的左手边会变成一个单位矩阵I ,而逆矩阵A ^(-1) 会出现在B 的右手边。
csp202305-2 矩阵运算 优化方法:先k*v,再q*k。(先q*k:n*d×d*n=n*n,改为先k*v:d*n×n*d=d*d,此题d远比n小,所以优化可行)。 #include <bits/stdc++.h>using namespace std;typedef long long int ll;const ll maxn = 10005;ll q[maxn][25];ll k[25][maxn];ll v[maxn][25];...
CSP题解|202305-2 矩阵运算|70分 #include <bits/stdc++.h> using namespace std; int main(){ int n,d;//n为矩阵的行数,d为列数 cin>>n>>d; //输入三个n行d列的矩阵,KT为K转置 long long Q[n][d],KT[d][n],V[n][d]; long long W[n];...