java稀疏矩阵_Java实现 稀疏矩阵乘积

博客围绕稀疏矩阵乘积展开,给出了计算两个N × N稀疏矩阵A和B乘积C的问题描述、输入输出要求及样例。同时提供了Java代码实现,通过读取矩阵非0元素,根据条件计算乘积矩阵C的非0元素并输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

稀疏矩阵乘积

描述

给定两个N × N的稀疏矩阵A和B,其中矩阵A有P个元素非0,矩阵B有Q个元素非0。请计算两个矩阵的乘积C = A × B并且输出C中所有非0的元素。

输入

第一行包含三个整数N, P, Q

以下P行每行三个整数i, j, k表示A矩阵的一个非0元素:Aij = k

以下Q行每行三个整数i, j, k表示B矩阵的一个非0元素:Bij = k

对于80%的数据,1 ≤ N, P, Q ≤ 200

对于100%的数据, 1 ≤ N, P, Q ≤ 2000, 1 ≤ i, j ≤ N, 0 ≤ k ≤ 100

输出

输出若干行,按先行后列的顺序输出矩阵C的每一个非0元素

每行三个整数i, j, k表示C矩阵的一个非0元素:Cij = k

样例输入

2 2 4

1 1 1

2 2 1

1 1 1

1 2 2

2 1 3

2 2 4

样例输出

1 1 1

1 2 2

2 1 3

2 2 4

package 第二次模拟;

import java.util.Scanner;

public class Demo4矩阵相乘 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

int p = sc.nextInt();

int q=sc.nextInt();

int [] [] a = new int [p][3];

int [] [] b = new int [q][3];

for (int i = 0; i < p; i++) {

for (int j = 0; j < 3; j++) {

a[i][j]=sc.nextInt();

}

}

for (int i = 0; i < q; i++) {

for (int j = 0; j < 3; j++) {

b[i][j]=sc.nextInt();

}

}

sc.close();

int [] [] c = new int [n][n];

for (int i = 0; i < p; i++) {

for (int j = 0; j < q; j++) {

if (a[i][1] == b[j][0]) {//由图可以看出当A矩阵的列号等于B矩阵的行号时求和

c[a[i][0]-1][b[j][1]-1] += a[i][2] * b[j][2];

}

}

}

for (int i = 0; i

for (int j = 0; j

System.out.println(i+1+" "+(j+1)+" "+c[i][j]);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值