×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
解題報告
#37580: 解題思路(含一些小技巧)
edoctopus322@gmail.com
(Moon Jam)
學校 : 臺北市立成功高級中學
編號 : 167591
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [36.225.19.60]
最後登入時間 :
2023-12-23 13:47:18
b266.
矩陣翻轉
--
2016 APCS 實作題第二題
| From: [36.225.13.17] | 發表日期 : 2023-09-17 21:26
完整題解:
https://moon-jam.me/zerojudge_b266_b965/
解題思路:
這題題目測資範圍R,C,M都小於10,如果直接做的話複雜度應該就是O(RCM)(就是按照題目的意思把輸入的矩陣反著操作),限制2s應該是可以順利通關
🌟因為是要從B推回原先的矩陣,因此需要將輸入指令倒著走一次(例如原本是A矩陣翻轉、翻轉、順時針旋轉90度得到B矩陣,就要將B矩陣逆時針旋轉90度、翻轉、翻轉,才能變成原先的A矩陣),因此現在問題就只剩下如何完成翻轉和逆時針旋轉90度了
1. 翻轉:這邊是指上下翻轉,因此較為簡單,只要將第i列第j行的元素跟第(c-i)列第j行的元素交換即可,且其中i跟(c-i)會在一半的地方交會,且在c是奇數時(c+1)/2的那行可以不做任何操作,因此讓i從0~c/2執行過一次即可
2. 逆時針旋轉90度:這個稍微難一點,可以想做事將左上角固定,逆時針旋轉90度,如此一來可以發現就是將(i,j)位置的元素移動到(r-j-1,i)
ZeroJudge Forum