雞塊是正在 APCSC 學院讀書的學生,在某堂數學課中,他學到了矩陣存在一個「轉置」操作,具體來說,一個矩陣 $A$ 的轉置 $A^ T$ 滿足
$$A^ T_{i, j} = A_{j, i}$$
例如矩陣
1 2 3
4 5 6
7 8 9
轉置後會變成
1 4 7
2 5 8
3 6 9
某一天,在雞塊在準備段考考古題時發現考了一大堆的轉置操作計算!不想被當人體計算機的雞塊決定寫個程式來計算一個 $n \times n$ 矩陣的轉置是多少,其他的功能都寫好了,但最關鍵的轉置,雞塊卻不知道怎麼寫,你能幫幫他嗎?
喔對,因為雞塊特別討厭 [
和 ]
,他們實在是太方了!所以希望你給他的程式裡能夠不要出現這兩個符號
請在程式碼最前面引入標頭檔 lib0631.h
,並實作 void transpose(int **arr, int n)
,其有以下特性:
arr
是一個 int 指標的指標,每個指標指向一個 int*
,其再指向一個 int
。整個 arr
可視作一個二維陣列。n
代表 arr
矩陣的大小是 $n \times n$ 的。transpose(arr, n)
後,arr
會變成轉置過後的樣子。以下是一個可以成功編譯,但不保證 AC 的程式碼:
#include "lib0631.h"
using namespace std;
void transpose(int **arr, int n) {
}
請勿輸入任何東西,否則將造成不可預期的後果。
請勿輸出任何東西,否則可能造成預料之外的結果。
測試用標頭檔
這裡提供一份本地測試用的標頭檔,你可以將其複製下來存檔成 lib0631.h
後 #include "lib0631.h"
做使用。但請注意,這只是測試用的標頭檔,一些與解題無關的行為將會與 judge 上的有所不同,因此請不要嘗試任何與解題無關的行為,很可能會導致各種不可預期的後果。
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0 | 範例測資 | 0 |
2 | 0~9 | 無額外限制 | 100 |