題目
三元組順序表表示的稀疏矩陣轉(zhuǎn)置Ⅱ。設(shè)a和b為三元組順序表變量,分別表示矩陣M和T。要求按照a中三元組的次序進(jìn)行轉(zhuǎn)置,并將轉(zhuǎn)置后的三元組置入b中恰當(dāng)?shù)奈恢谩?/p>
輸入格式
輸入第1行為矩陣行數(shù)m、列數(shù)n及非零元素個(gè)數(shù)t。
按行優(yōu)先順序依次輸入t行,每行3個(gè)數(shù),分別表示非零元素的行標(biāo)、列標(biāo)和值。文章來源:http://www.zghlxwxcb.cn/news/detail-742174.html
輸出格式
按置入b中的順序輸出置入的位置下標(biāo),轉(zhuǎn)置后的三元組行標(biāo)、列標(biāo)和值,數(shù)據(jù)之間用空格分隔,共t行。文章來源地址http://www.zghlxwxcb.cn/news/detail-742174.html
輸入樣例
3 4 3
0 1 -5
1 0 1
2 2 2
輸出樣例
1 1 0 -5
0 0 1 1
2 2 2 2
代碼
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 7;
struct Matrix
{
int x, y;
int val;
}a[N], b[N];
int main()
{
int n, m, t, i, j;
int cnt = 0;
cin >> n >> m >> t;
for (i = 0; i < t; i++)
cin >> a[i].x >> a[i].y >> a[i].val;
for (i = 0; i < m; i++)
{
for (j = 0; j < t; j++)
{
if (a[j].y == i)
{
b[cnt].y = a[j].x;
b[cnt].x = a[j].y;
b[cnt].val = a[j].val;
cnt++;
}
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < t; j++)
{
if (b[j].y == i)
cout << j << " " << b[j].x << " " << b[j].y << " " << b[j].val << endl;
}
}
return 0;
}
到了這里,關(guān)于PTA:三元組順序表表示的稀疏矩陣轉(zhuǎn)置Ⅱ的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!