10 4做題 USACO1 2方格轉換

2021-07-05 14:20:28 字數 1394 閱讀 7172

方塊轉換

描述 一塊n x n(1<=n<=10)正方形的黑白瓦片的圖案要被轉換成新的正方形圖案。寫乙個程式來找出將原始圖案按照以下列轉換方法轉換成新圖案的最小方式:

1:轉90度:圖案按順時針轉90度。

2:轉180度:圖案按順時針轉180度。

3:轉270度:圖案按順時針轉270度。

4:反射:圖案在水平方向翻轉(以**鉛垂線為中心形成原圖案的映象)。

5:組合:圖案在水平方向翻轉,然後再按照1到3之間的一種再次轉換。

6:不改變:原圖案不改變。

7:無效轉換:無法用以上方法得到新圖案。

如果有多種可用的轉換方法,請選擇序號最小的那個。

只使用1–7中的乙個步驟來完成這次轉換。

格式 program name: transform

input format:

(file transform.in)

第一行: 單獨的乙個整數n。

第二行到第n+1行: n行每行n個字元(不是「@」就是「-」);這是轉換前的正方形。

第n+2行到第2*n+1行: n行每行n個字元(不是「@」就是「-」);這是轉換後的正方形。

output format:

(file transform.out)

單獨的一行包括1到7之間的乙個數字(在上文已描述)表明需要將轉換前的正方形變為轉換後的正方形的轉換方法。

sample input

3@-@

---@@-

@-@@--

--@sample output

1

列舉方案就行了,要按順序檢驗,用中間陣列轉換即可

考察演算法:模擬/列舉

/*

id: 保密

prog: transform

lang: c++

*/#include

#include

#include

using

namespace

std;

const

int n=15;

int n;

char a[n][n],b[n][n],c[n][n],d[n][n];//c和d是轉換時用的中間陣列

void change(int x)

bool pd()

int main()

}for(i=1;i<=3;i++)//第5種方法

}for(j=1;j<=n;j++)

for(k=1;k<=n;k++)

c[j][k]=a[j][k];

if(pd())///第6種方法

cout

<<7

return

0;}

USACO 1 2 方塊轉換 列舉

description 一塊n x n 1 n 10 正方形的黑白瓦片的圖案要被轉換成新的正方形圖案。寫乙個程式來找出將原始 圖案按照以下列轉換方法轉換成新圖案的最小方式 如果有多種可用的轉換方法,請選擇序號最小的那個。input 第一行 單獨的乙個整數n。第二行到第n 1行 n行每行n個字元 不是...

USACO1 2 解題報告

以後將會不定期刷usaco的題目。每做完一小章會寫乙份解題報告。這一小章裡面較簡單或者並不是很重要的題目就會直接放在裡面。而比較重要的題目就會單獨寫部落格,在這裡面放鏈結。這一章很簡單,全部都是很基礎的題目。就直接在這裡面一筆帶過。usaco 思路 沒啥好說的。id ssl zyc2 task te...

USACO 1 2 結題報告

1.2.5 貪婪的禮物贈送者 1.2.6 friday the thirteenth 1.2.7 broken necklace 總的來說很簡單,主要是基礎。模擬,題目讓你幹什麼你就幹什麼。include include include using namespace std string s in...