第八屆藍橋盃國賽 磁磚樣式

2022-07-27 03:45:15 字數 1150 閱讀 9428

題目:

小明家的一面裝飾牆原來是 3*10 的小方格。

現在手頭有一批剛好能蓋住2個小方格的長方形瓷磚。

瓷磚只有兩種顏色:黃色和橙色。

小明想知道,對於這麼簡陋的原料,可以貼出多少種不同的花樣來。

小明有個小小的強迫症:忍受不了任何2*2的小格仔是同一種顏色。

(瓷磚不能切割,不能重疊,也不能只鋪一部分。另外,只考慮組合圖案,請忽略瓷磚的拼縫)

顯然,對於 2*3 個小格仔來說,口算都可以知道:一共10種貼法,如【p1.png所示】

但對於 3*10 的格仔呢?肯定是個不小的數目,請你利用計算機的威力算出該數字。

注意:你需要提交的是乙個整數,不要填寫任何多餘的內容(比如:說明性文字)

解題思路:

用dfs來做,黃色瓷磚用1表示,橙色用2來表示,用a陣列來表示起始的狀態,由於2*2的小格仔不是同一種顏色,用乙個judge函式來判斷是否滿足條件。

#includeint a[5][15];

int count=0;

bool judge(int x,int y)

void dfs(int x,int y)

if(y>10)

if(a[x][y]==-1)

a[x][y]=-1;

a[x][y+1]=-1;

a[x][y]=2;

a[x][y+1]=2;

if(judge(x,y))

a[x][y]=-1;

a[x][y+1]=-1;

}if(a[x+1][y]==-1)

a[x][y]=-1;

a[x+1][y]=-1;

a[x][y]=2;

a[x+1][y]=2;

if(judge(x,y))

a[x][y]=-1;

a[x+1][y]=-1;}}

else }

int main()

}//由於座標是從1開始並且陣列比原本的大因此不必考慮是否越界的問題

dfs(1,1);

printf("%d",count);

return 0;

}

ac**:

第八屆藍橋杯(國賽) 對局匹配

問題描述 小明發現 的自動對局系統在匹配對手時,只會將積分差恰好是 k 的兩名使用者匹配在一起。如果兩人分差小於或大於 k,系統都不會將他們匹配。現在小明知道這個 總共有 n 名使用者,以及他們的積分分別是 a1,a2,an。輸入格式 第一行包含兩個個整數 n 和 k。第二行包含n個整數 a1,a2...

藍橋杯第八屆省賽

第4題 6x6的方格,沿著格仔的邊線剪開成兩部分。要求這兩部分的形狀完全相同。如圖 p1.png,p2.png,p3.png 就是可行的分割法。試計算 包括這3種分法在內,一共有多少種不同的分割方法。注意 旋轉對稱的屬於同一種分割法。請提交該整數,不要填寫任何多餘的內容或說明文字。圖的dfs 按照兩...

第八屆藍橋盃國賽 數字和 Java

數學家高斯很小的時候就天分過人。一次老師指定的算數題目是 1 2 100。高斯立即做出答案 5050 這次你的任務是類似的。但並非是把乙個個的數字加起來,而是對該數字的每乙個數字作累加。這樣從1加到100的 和 是 901 從10加到15是 21,也就是 1 0 1 1 1 2 1 3 1 4 1 ...