程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 信奧-一道c++問題,希望大家幫我解決一下,謝謝

信奧-一道c++問題,希望大家幫我解決一下,謝謝

編輯:編程綜合問答
一道c++問題,希望大家幫我解決一下,謝謝

總時間限制: 1000ms 內存限制: 65536kB
描述
有一個N x N(N為奇數,且1 <= N <= 10)的矩陣,矩陣中的元素都是字符。這個矩陣可能會按照如下的幾種變幻法則之一進行變幻(只會變幻一次)。
現在給出一個原始的矩陣,和一個變幻後的矩陣,請編寫一個程序,來判定原始矩陣是按照哪一種法則變幻為目標矩陣的。
1. 按照順時針方向旋轉90度; 如:
1 2 3 7 4 1
4 5 6 變幻為 8 5 2
7 8 9 9 6 3
2. 按照逆時針方向旋轉90度;
如:
1 2 3 3 6 9
4 5 6 變幻為 2 5 8
7 8 9 1 4 7
3. 中央元素不變(如下例中的 5),其他元素(如下例中的3)與“以中央元素為中心的對應元素”(如下例中的7)互換;
如:
1 2 3 9 8 7
4 5 6 變幻為 6 5 4
7 8 9 3 2 1
4. 保持原始矩陣,不變幻;
5. 如果 從原始矩陣 到 目標矩陣 的變幻,不符合任何上述變幻,請輸出5
輸入
第一行:矩陣每行/列元素的個數 N;
第二行到第N+1行:原始矩陣,共N行,每行N個字符;
第N+2行到第2*N+1行:目標矩陣,共N行,每行N個字符;
輸出
只有一行,從原始矩陣 到 目標矩陣 的所采取的 變幻法則的編號。
樣例輸入
5
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
y x w v u
t s r q p
o n m l k
j i h g f
e d c b a
樣例輸出
3

最佳回答:


首先分為兩大類
一類是原始矩陣y[(n+1)/2][(n+1)/2]與目標矩陣m [(n+1)/2][(n+1)/2] 的中間元素位置發生了變化直接就是最後一種。
第二類就要找經歷每種變幻之後原始矩陣與目標矩陣每個元素位置間的關系比如順時針90度後(拿5*5的來說),y[1-1][1-1]成了m[1-1][5-1],y[1-1][2-1]成了m[2-1][5-1]等,都是有規律的(1-1,2-1,5-1是為了更直觀的看出元素所在行數列數)。前四個規矩符合哪個是哪個,都不符合就是最後一種了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved