UVa 11349 - Symmetric Matrix
UVa 11349 - Symmetric Matrix
( Tip: 點擊左上方的三橫槓選單按鈕,可以收起左側 Pdf 頁。)
Step 1. 題目概要
- 題目的目標是要檢查給定的矩陣是否為
對稱矩陣
,例如,下面是一個3x3的對稱矩陣
:
1 2 3
2 4 5
3 5 6
在這個矩陣中,主對角線上的元素是1、4和6,主對角線上方和下方的元素分別是2、3和5。由於主對角線上方和下方的元素相等,所以這個矩陣是對稱矩陣。 對稱矩陣
是指矩陣的主對角線上方和下方的元素相等的特殊矩陣。具體來說,如果一個方陣的第i行第j列的元素等於第j行第i列的元素,則該矩陣是對稱矩陣。
Step 2. 解題思路
- 程式的主要部分是一個while迴圈,根據輸入的測試案例數量(T)執行。在每個測試案例中,它會讀取一個字元n1、一個字元n2和一個整數size,然後宣告一個大小為size * size的長整數陣列table。
- 接下來,程式使用for迴圈讀取size * size個數字並將它們存儲在table陣列中。
- 接著,程式使用for迴圈檢查矩陣的對稱性。它以中間為對稱點,從最外圍的兩個數字開始比對,如果有任何數字不相等或小於0,就跳出迴圈。
- 最後,程式根據for迴圈的中斷條件輸出結果。如果迴圈完成了所有元素的比對,表示矩陣對稱,輸出"Test #X: Symmetric.“;否則,輸出"Test #X: Non-symmetric.”。其中,X表示測試案例的編號,cases變數用於追蹤測試案例的編號,每次測試案例完成後自增。
將二維陣列視為一維陣列來看是一個重要的觀念,舉例:
5 0 9
3 2 3 相當於 5 0 9 3 2 3 9 0 5
9 0 5
陷阱:本題測資相當巨大,需要使用long long int
才能確保數字裝得下。
Step 3. 範例輸入與輸出 - Sample Input and Output
1 | 2 |
1 | Test #1: Symmetric. |
Step 4. 參考程式碼 - Accepted Code
1 |
|
評論