题目:
标准输入输出
题目描述:
使用快速转置算法实验三元组的转置。
输入:
输入包含若干个测试用例,每个测试用例第一行为两个正整数m,n表示稀疏矩阵的行数和列数,接下来m行,每行n个整数,表示稀疏矩阵元素。要求采用三元组存储,并使用普通转置方法实验三元组的逆置。
输出:
对每一测试用例,输出逆置后的三元组。
输入样例:
5 6
5 0 0 0 4 0
0 8 2 0 0 0
9 0 0 0 1 0
0 6 7 0 0 0
0 0 0 0 0 0
输出样例:
6 5 8
1 1 5
1 3 9
2 2 8
2 4 6
3 2 2
3 4 7
5 1 4
5 3 1
代码:
import java.util.Scanner;
public class Xingyuxingxi {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int m= sc.nextInt();
int n= sc.nextInt();
int [][]a=new int[m][n];
int cnt=0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
a[i][j]=sc.nextInt();
if(a[i][j]!=0)cnt++;
}
}
int [][]b=new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
b[i][j]=a[j][i];
}
}
System.out.println(n+" "+m+" "+cnt);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if(b[i][j]!=0)
{
System.out.println((i+1)+" "+(j+1)+" "+b[i][j]);
}
}
}
}
}