#pragma warning(disable :4996)
#include <stdio.h>
#include <string.h>
#define max 100
struct three {
int row, col;//行 列
int data;
};
typedef struct reararr {
three a[max];
int m, n, x;//行,列,非零元个数
}M;
int main() {
M arr, newarr;
int copt[max];
int num[max];
memset(copt, 0, sizeof(copt));
memset(num, 0, sizeof(num));
scanf("%d %d %d", &arr.m, &arr.n, &arr.x);
newarr.m = arr.n;
newarr.n = arr.m;
newarr.x = arr.x;
for (int i = 0; i < arr.x; ++i) {
scanf("%d %d %d", &arr.a[i].row, &arr.a[i].col, &arr.a[i].data);
num[arr.a[i].col]++;
}
for (int i = 1; i < newarr.n; ++i) {
copt[i] = copt[i - 1] + num[i - 1];
}
for (int i = 0; i < arr.x; ++i) {
int nowcol = arr.a[i].col;
int j = copt[nowcol];
newarr.a[j].row = arr.a[i].col;
newarr.a[j].col = arr.a[i].row;
newarr.a[j].data = arr.a[i].data;
++copt[nowcol];
}
for (int i = 0; i < arr.x; ++i)
printf("%d %d %d\n", newarr.a[i].row, newarr.a[i].col, newarr.a[i].data);
return 0;
}
稀疏矩阵(三元组)快速转置
最新推荐文章于 2024-08-12 19:48:20 发布