2024 ccfcsp认证打卡 2023 05 2 矩阵运算

java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int N = 10010, D = 30;
        long[][] tmp = new long[D][D];  // 用于存储 K 的转置 * V 的结果
        long[][] ans = new long[N][D];  // 存储最终结果
        int n, d;  // n 表示矩阵的行数,d 表示矩阵的列数
        int[][] Q = new int[N][D];  // 输入矩阵 Q
        int[][] K = new int[N][D];  // 输入矩阵 K
        int[][] V = new int[N][D];  // 输入矩阵 V
        int[] W = new int[N];       // 输入数组 W

        n = input.nextInt();  // 输入矩阵行数
        d = input.nextInt();  // 输入矩阵列数
        
        // 输入矩阵 Q
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= d; j++)
                Q[i][j] = input.nextInt();
        
        // 输入矩阵 K
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= d; j++)
                K[i][j] = input.nextInt();
        
        // 输入矩阵 V
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= d; j++)
                V[i][j] = input.nextInt();
        
        // 输入数组 W
        for (int i = 1; i <= n; i++)
            W[i] = input.nextInt();

        // 计算 K 的转置 * V = tmp
        for (int i = 1; i <= d; i++)
            for (int j = 1; j <= d; j++)
                for (int k = 1; k <= n; k++)
                    tmp[i][j] += (long) K[k][i] * V[k][j];

        // 计算 Q * tmp = ans
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= d; j++) {
                for (int k = 1; k <= d; k++)
                    ans[i][j] += (long) Q[i][k] * tmp[k][j];
                ans[i][j] *= (long) W[i];
            }

        // 输出结果
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= d; j++)
                System.out.print(ans[i][j] + " ");
            System.out.println();
        }
    }
}
相关推荐
C语言魔术师19 分钟前
62.不同路径
算法·leetcode·动态规划
fantasy_420 分钟前
LeetCode238☞除自身以外数组的乘积
java·数据结构·python·算法·leetcode
GalenZhang88822 分钟前
Java生成微信小程序码及小程序短链接
java·微信小程序·小程序
椰羊~王小美25 分钟前
贪心算法和动态规划
算法·贪心算法·动态规划
元亓亓亓25 分钟前
Java后端开发day38--不可变集合&Stream流
java·开发语言
纪元A梦33 分钟前
华为OD机试真题——阿里巴巴找黄金宝箱Ⅰ(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
java·c语言·javascript·c++·python·华为od·go
CHQIUU1 小时前
跨语言哈希一致性:C# 与 Java 的 MD5 之战?
java·c#·哈希算法
JavaDog程序狗1 小时前
【java】easypoi导出excel单元格,填充动态下拉列
java·spring boot·excel
18538162800余--1 小时前
短视频矩阵系统可视化剪辑功能开发,支持OEM
线性代数·矩阵·音视频
Java中文社群1 小时前
国内首个「混合推理模型」Qwen3深夜开源,盘点它的N种对接方式!
java·人工智能·后端