蒙德里安的夢想

2021-10-06 12:48:46 字數 956 閱讀 8160

求把nm的棋盤分割成若干個12的的長方形,有多少種方案。

例如當n=2,m=4時,共有5種方案。當n=2,m=3時,共有3種方案。

輸入格式

輸入包含多組測試用例。

每組測試用例佔一行,包含兩個整數n和m。

當輸入用例n=0,m=0時,表示輸入終止,且該用例無需處理。

輸出格式

每個測試用例輸出乙個結果,每個結果佔一行。

資料範圍

1≤n,m≤11

題目型別:狀壓dp

提交報告

第一次wa,原因是不理解&==的優先順序,&的優先順序低,所以就是要(j&k)要加括號再 寫==

#include

#include

using

namespace std;

int n,m;

const

int maxn =

12,maxm =

1<<12;

long

long f[maxn]

[maxm]

;int st[maxm]

;int

main()

cnt =0;

}else cnt++;}

if(cnt&

1) st[i]

=false;}

//f[0][0] = 1;

f[0]

[0]=

1;//什麼都不放

for(

int i=

1;i<=m;i++)}

cout<

]<

}return0;

}

蒙德里安的夢想

求把n m的棋盤分割成若干個1 2的的長方形,有多少種方案。例如當n 2,m 4時,共有5種方案。當n 2,m 3時,共有3種方案。如下圖所示 輸入格式 輸入包含多組測試用例。每組測試用例佔一行,包含兩個整數n和m。當輸入用例n 0,m 0時,表示輸入終止,且該用例無需處理。輸出格式 每個測試用例輸...

蒙德里安的夢想

acwing rua,可以分割棋盤,但是我們發現分割棋盤之後會有好多長方形被攔腰折斷,所以可以沒被折斷的看做 0,折斷的看做 1,那麼下一行中那些折斷的就必須看做 0,剩下的可以是1 也可以是 0。用 f 表示第 i 行的形態 為 j 時,前 i 行的分割方案的總數。第 i 1 的形態 k 轉移到第...

AcWing , 蒙德里安的夢想

結果完整 就是將乙個n m的二維矩陣,分成若干個1 2的方格,有多少種分配方式 完全分配 可以對放置的方式進行模擬,先放置橫著的1 2方格,再放置豎著的2 1方格。那麼擺放的小方格方案數等價於橫著擺放的小方格方案數,因為當橫著合法擺放的方格確定後,豎著擺放的方式就已經確定了,直接內嵌。他的資料範圍為...