復習してたら頭がこんがらがってしょうがなかった...
まあこれもアルゴリズムというよりは数学です
なんとかゴリゴリforぶん回してACでした。
計算方法
上記のような3*3になっていないような行列の計算も、基本のものと同じ。
ただ解が長い方の行列の長さに合わさる?はず。
混乱したところ
1つ目の行列はn行、m列
2つ目の行列はm行、l列
1つ目の行列と2つめの行列がmを共有しているところが厄介だった
1つめの行列と2つめの行列を掛け合わせるところでは、
[n][m]*[m][l]
としておけばよいのだが、単純に入力値を順番に三重ループしちゃうと混乱してしまうってわけです。
図をみる限り、最もテキパキ値が変わる部分はm
なので、そこを最深部分にもってこようね、ってだけです
for(int i; i<n; i++) { for(int j; j<l; j++) { for(int k; k<m; k++) { ans[i][k] += m1[i][j]*m2[j][k]; } } }