タイトル:基本的なトレーニング行列乗算
カテゴリ:
- ACM
- 行列の乗算の
タグ: - 魔法のマークと下の
日付:2020年3月14日午後四時27分26秒
1を乗算整数初期化され、乗算行列は同じ単位行列のサイズを初期化する(だけ対角線全て1です)。これは、3番目の変数の結果によって保持されなければなりません。さらに制御ループだけでなく、変換生成物及び各被乗数の数を制御するため。
問題
基本的なトレーニング行列乗算の質問
リソースの制約
制限時間:メモリ制限が1.0S:512.0メガバイト
問題の説明
与えられたN番目の順番がA、A、M個の出力パワー(Mは負でない整数である)行列
:例えば、
A =を
1 2
3 4。
パワーの2 A
7 10
15 22であります
入力形式
最初の行は、N、M(1 <= Nの整数正である <= 30、0 <= M <= 5)、 及び行列Aのオーダーのパワーを表す必要
Nの絶対値の次のNラインをもう10非負整数より、行列の値は、説明しません
出力フォーマット
N個の整数の合計N個の出力線、Mは、対応する行列Aのパワーを表します。隣接する数字の間にスペースで区切っ
サンプル入力
2 2
1 2
3 4
サンプル出力
7 10
15 22
アルゴリズム
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main(){
//freopen("input.txt", "r", stdin);
int juzhen[30][30],jieguo[2][30][30],nn=0;
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>juzhen[i][j];
jieguo[0][i][j]=i==j?1:0;
}
}
for(int i=0;i<m;i++)
{
nn=i&1?0:1;
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
int sum=0;
for(int l=0;l<n;l++)
{
sum+=jieguo[1-nn][j][l]*juzhen[l][k];
}
jieguo[nn][j][k]=sum;
}
}
}
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
cout<<jieguo[nn][j][k]<<" ";
cout<<endl;
}
}