1、 多公尺諾骨牌(dominoes)
【問題描述】
有多少種方法可以在乙個
3*n的矩形中平鋪乙個
2*1
的多公尺諾骨牌?
下圖給出了乙個
3*12
的矩形中乙個平鋪的樣例。
【輸入格式】
輸入包含若干測試用例,以包含-1 的一行結束。每個測試用例包含乙個整數0<=n<=30。
【輸出格式】
對每個測試用例,輸出乙個整數,給出可能的平鋪數。
【輸入樣例】
2812
-1【輸出樣例】
3153
2131
【輸入格式】
輸入包含若干測試用例,以包含-1 的一行結束。每個測試用例包含乙個整數0<=n<=30。
【輸出格式】
對每個測試用例,輸出乙個整數,給出可能的平鋪數。
【輸入樣例】
2812
-1【輸出樣例】
3153
2131
**:
varf:array [1..100] of qword;
i,j,m,n,ans:longint;
begin
assign(input,'dominoes.in');
assign(output,'dominoes.out');
reset(input);
rewrite(output);
readln(n);
while n<>-1 do
begin
fillchar(f,sizeof(f),0);
if n mod 2=1 then writeln('0') else
begin
f[1]:=1;
f[2]:=3;
f[3]:=11;
for i:=4 to 20 do
f[i]:=4*f[i-1]-f[i-2];
writeln(f[(n+2) div 2]);
end;
readln(n);
end;
close(input);
close(output);
end.
多公尺諾骨牌問題,狀態壓縮dp
題目描述 用1 2 的矩形通過組合拼成大矩形,求拼成指定的大矩形有幾種拼法。首先 我們先求用1 2 的矩形拼成 n m的矩形有多少種拼法 當n m為奇數時,一定是不會拼出來的,因為想要拼出來就需要整數倍的小矩形數目。為了加速演算法,要把m,n中小的那個當做列 分兩個步驟 1 先求出相鄰兩行的轉化關係...
P1282 多公尺諾骨牌 DP
多公尺諾骨牌有上下2個方塊組成,每個方塊中有1 6個點。現有排成行的 上方塊中點數之和記為s1,下方塊中點數之和記為s2,它們的差為 s1 s2 例如在圖8 1中,s1 6 1 1 1 9,s2 1 5 3 2 11,s1 s2 2。每個多公尺諾骨牌可以旋轉180 使得上下兩個方塊互換位置。程式設計...
P1282 多公尺諾骨牌 DP
題目大意 題解當知道 總和 及 單行的和 就可以算出差值的大小 1 2 3 4 單行和l 10 8 7 6 5 總和s 36 則上下行的差值為 l s l include define inf 0x3f3f3f3f using namespace std int n,a 1005 b 1005 dp...