求把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方格。那麼擺放的小方格方案數等價於橫著擺放的小方格方案數,因為當橫著合法擺放的方格確定後,豎著擺放的方式就已經確定了,直接內嵌。他的資料範圍為...