Matrix Row Sum Queries


Submit solution

Points: 10
Time limit: 1.0s
Memory limit: 64M

Authors:
Problem type
Allowed languages
Java 19, Java 8

題目說明

本題目要求實作一個矩陣處理程式。程式首先讀取兩個正整數 m 與 n,代表一個維度為 m x n 的整數矩陣(m 個 Row,n 個 Col)。接著,程式會依序讀取該矩陣的所有元素(由左至右、由上至下)。

在矩陣資料輸入完成後,程式會讀取一個正整數 k,代表後續的查詢次數。接著輸入 k 個整數 q_1, q_2, ..., q_k,每個整數代表一個 Row 的索引(Index),範圍在 0 到 m - 1 之間。

你的任務是完成樣板程式碼中缺少的兩個核心函數:

  1. calculateRowSum:計算並傳回指定 Row 索引的所有元素總和。

  2. processQueries:依序處理 k 個查詢,呼叫 calculateRowSum 取得結果並將其輸出。

請務必使用以下提供的樣板程式碼進行開發,僅能修改指定函數內部的實作與函數的簽章(Signature,如回傳型態與參數列表),嚴禁修改 main 函數或其他結構,否則不予計分。

樣板程式碼:


import java.util.Scanner;

public class MatrixProcessor {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int m = sc.nextInt();
        int n = sc.nextInt();

        int[][] matrix = new int[m][n];
        for (int i = 0; i < m; i = i + 1) {
            for (int j = 0; j < n; j = j + 1) {
                matrix[i][j] = sc.nextInt();
            }
        }

        int k = sc.nextInt();
        int[] queries = new int[k];
        for (int i = 0; i < k; i = i + 1) {
            queries[i] = sc.nextInt();
        }

        processQueries(matrix, queries, k);
    }

    // 依序針對每個查詢呼叫 calculateRowSum 取得結果然後輸出該次查詢的結果
    public static ... processQueries(...) {
        ...
    }

    // 計算指定列的總和
    public static ... calculateRowSum(...) {
        ...
    }
}

輸入值的格式

  1. 第一行包含兩個正整數 m 與 n (1 <= m, n <= 100),以空格分隔。

  2. 接下來有 m 行(或是連續輸入 m x n 個整數),每行包含 n 個整數,代表矩陣元素。每個元素的值在 -10000 到 10000 之間。

  3. 接下來一行包含一個正整數 k (1 <= k <= 100),代表查詢次數。

  4. 最後一行包含 k 個整數 q_i (0 <= q_i < m),代表查詢的 Row 索引,以空格分隔。

輸出值的格式

輸出共有 k 行。每行輸出一個整數,代表對應查詢的 Row 總和。

各種需要注意的邊界條件

  1. 矩陣維度最小情況:當 m = 1 且 n = 1 時,矩陣只有一個元素。

  2. 矩陣維度單一化:只有一個 Row (1 x n) 或只有一個 Col (m x 1) 的情況。

  3. 查詢重複性:同一個 Row 指數可能會被多次查詢,程式應能正確重複輸出。

  4. 數值範圍:矩陣元素可能包含 0 或負數。

  5. Row 索引邊界:查詢可能針對第 0 個 Row 或最後一個 Row (m - 1)。

測試資料(1)-輸入

2 3

1 2 3

4 5 6

2

0

1

測試資料(1)-輸出

6

15

測試資料(2)-輸入

1 1

99

1

0

測試資料(2)-輸出

99

測試資料(2)-解釋與特性

邊界條件:1 x 1 最小矩陣。只有一個 Row(索引 0),總和即為該元素本身。


Comments

There are no comments at the moment.