公式

D - Matrix Transposition 解説 by sugarrr


\(B_{i,j} = A_{j,i}\) が成り立つので、これを用いて行列 \(B\) を求めることができます。

for文の \(2\) 重ループが最初は難しく感じるかもしれないので、以下の実装例も参考にしてください。

また、転置行列を求めるライブラリが備わっているプログラミング言語もあるので、興味がある人は調べてみてください。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

signed main(){
    ll h,w;cin>>h>>w;
    ll a[h][w];
    for(ll i=0;i<=h-1;i++){
        for(ll j=0;j<=w-1;j++){
            cin>>a[i][j];
        }
    }

    ll b[w][h];
    for(ll i=0;i<=w-1;i++){
        for(ll j=0;j<=h-1;j++){
            b[i][j]=a[j][i];
        }
    }

    for(ll i=0;i<=w-1;i++){
        for(ll j=0;j<=h-1;j++){
            cout<<b[i][j];
            if(j<h-1)cout<<" ";
            else cout<<endl;
        }
    }

    return 0;
}

投稿日時:
最終更新: