小明家的一面裝飾牆原來是 3*10 的小方格。
現在手頭有一批剛好能蓋住2個小方格的長方形瓷磚。
瓷磚只有兩種顏色:黃色和橙色。
小明想知道,對於這麼簡陋的原料,可以貼出多少種不同的花樣來。
小明有個小小的強迫症:忍受不了任何2*2的小格仔是同一種顏色。
(瓷磚不能切割,不能重疊,也不能只鋪一部分。另外,只考慮組合圖案,請忽略瓷磚的拼縫)
顯然,對於 2*3 個小格仔來說,口算都可以知道:一共10種貼法,如【p1.png所示】
但對於 3*10 的格仔呢?肯定是個不小的數目,請你利用計算機的威力算出該數字。
注意:你需要提交的是乙個整數,不要填寫任何多餘的內容(比如:說明性文字)
#include#include#include#include#include#include#include#include#include#includeconst int maxn=1e5+5;
typedef long long ll;
using namespace std;
int ans=0;
int vis[25][25];
int n,m;
//maps;
sets;
void dfs(int count)
} if(flag)
break;
} if(!flag)
return ;
if(y+1<=m&&!vis[x][y+1])
if(x+1<=n&&!vis[x+1][y]) }
int main()
磁磚樣式 藍橋真題
老套路 每次遞迴 都找最左上角的空白位置 這個地方是必須要填滿的 如果放不下合適的瓷磚直接返回即可 具有很強的剪枝效果 遞迴時的引數為已鋪的面積 若已鋪滿 則判重後累加答案即可 include using namespace std const int maxn 20 map mp int book...
第八屆藍橋盃國賽 磁磚樣式
題目 小明家的一面裝飾牆原來是 3 10 的小方格。現在手頭有一批剛好能蓋住2個小方格的長方形瓷磚。瓷磚只有兩種顏色 黃色和橙色。小明想知道,對於這麼簡陋的原料,可以貼出多少種不同的花樣來。小明有個小小的強迫症 忍受不了任何2 2的小格仔是同一種顏色。瓷磚不能切割,不能重疊,也不能只鋪一部分。另外,...
磁磚樣式 另一種思路的dfs
基本的dfs搜尋一般都是直接從乙個點出發,再從這個點到下乙個 但是這題使用了另一種思路的dfs 每次選擇點不是根據上乙個點來推進,而是從整個地圖中選擇沒有選過的點 也就是掃瞄一遍地圖,從中選擇還沒有使用過的點,這種方式往往用於兩個點之間的轉移規則比較複雜的情況,比如這題,每次需要使用兩個點,而不是乙...