一塊n x n(1<=n<=10)正方形的黑白瓦片的圖案要被轉換成新的正方形圖案。寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的最小方式:
1:轉90度:圖案按順時針轉90度。
2:轉180度:圖案按順時針轉180度。
3:轉270度:圖案按順時針轉270度。
4:反射:圖案在水平方向翻轉(以**鉛垂線為中心形成原圖案的映象)。
5:組合:圖案在水平方向翻轉,然後再按照1到3之間的一種再次轉換。
6:不改變:原圖案不改變。
7:無效轉換:無法用以上方法得到新圖案。
如果有多種可用的轉換方法,請選擇序號最小的那個。
乙個步驟就要搞定
input format:
file (transformations.in)
第一行: 單獨的乙個整數n。
第二行到第n+1行: n行每行n個字元(不是「@」就是「-」);這是轉換前的正方形。
第n+2行到第2*n+1行: n行每行n個字元(不是「@」就是「-」);這是轉換後的正方形。
output format:
file (transformations.out)
單獨的一行包括1到7之間的乙個數字(在上文已描述)表明需要將轉換前的正方形變為轉換後的正方形的轉換方法。
模擬,壓位。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7const
int maxn=15;8
const
int inf=0x7fffffff;9
using
namespace
std;
10int
n;11
struct
pic12 25
} 26
return
flag;27}
28 }from
,to;
2930
void init(pic &t);//
輸入 31
void
solve();
32void turn(pic &t);//
旋轉90度
33void fc(pic &t);//
反射 34
35int
main()
3647
void init(pic &t)
4858
return;59
}60void
solve()
6165 turn(temp);if (temp==to)
66 turn(temp);if (temp==to)
6768 temp=from
;69 fc(temp);if (temp==to)
70 turn(temp);if (temp==to)
71 turn(temp);if (temp==to)
72 turn(temp);if (temp==to)
73if (from==to)
74 printf("
7\n");//
無法獲得
75return;76
}77void turn(pic &t)
7890
}91 t=c;92}
93void fc(pic &t)
94107
}108 t=c;
109 }
USACO 1 2 方塊轉換 列舉
description 一塊n x n 1 n 10 正方形的黑白瓦片的圖案要被轉換成新的正方形圖案。寫乙個程式來找出將原始 圖案按照以下列轉換方法轉換成新圖案的最小方式 如果有多種可用的轉換方法,請選擇序號最小的那個。input 第一行 單獨的乙個整數n。第二行到第n 1行 n行每行n個字元 不是...
78 方塊轉換
問題描述 一塊n x n 1 寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的最小方式 1 轉90度 圖案按順時針轉90度。2 轉180度 圖案按順時針轉180度。3 轉270度 圖案按順時針轉270度。4 反射 圖案在水平方向翻轉 形成原圖案的映象 5 組合 圖案在水平方向翻轉,然後按照...
7 6 1 2 2 方塊轉換 70分
一塊 n x n 1 n 10 正方形的黑白瓦片的圖案要被轉換成新的正方形圖案.寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的小方式 1 轉 90 度 圖案按順時針轉 90 度.2 轉 180 度 圖案按順時針轉 180 度.3 轉 270 度 圖案按順時針轉 270 度.4 反射 圖案...