#include <stdio.h>
#include <iostream>
using namespace std;
typedef struct
{
int i;//行数
int j;//列数
int data;//非零元素数
}Tri;
typedef struct
{
Tri arr[150];
int mu,nu,tu;
}TS;
void FastTrans(TS &T,TS S)
{
int i;
T.mu = S.nu;
T.nu = S.mu;
T.tu = S.tu;
if(T.tu){
int num[105];
for(i = 1;i <= S.nu;i++){
num[i] = 0;
}
for(i = 1;i <= S.tu;i++){
++num[S.arr[i].j];
}
int cpot[105];
cpot[1] = 1;
for(i = 2;i <= S.nu;i++){
cpot[i] = cpot[i - 1] + num[i - 1];
}
for(i = 1;i <= T.tu;i++){
int col = S.arr[i].j;
int q = cpot[col];
T.arr[q].data = S.arr[i].data;
T.arr[q].i = S.arr[i].j;
T.arr[q].j = S.arr[i].i;
cpot[col]++;
}
}
}
int main()
{
TS S,T;
cin >> S.mu >> S.nu >> S.tu;
for(int i = 1;i <= S.tu;i++){
cin >> S.arr[i].i >> S.arr[i].j >> S.arr[i].data;
}
FastTrans(T,S);
for(int i = 1;i <= T.tu;i++){
cout << T.arr[i].i << T.arr[i].j << T.arr[i].data<<endl;
}
return 0;
}
[算法][笔记]快速矩阵转置-板子
最新推荐文章于 2022-11-11 13:16:17 发布