將方格的擺放分成兩種:
1.水平擺放:此時所佔的兩個格仔都記為1。
2.豎直擺放:此時底下那個格仔記為1,上面那個記為0。
這樣的話,每行都會有乙個狀態表示。
定義:dp[i][s]表示考慮已經填到第i行,這一行狀態為s的方法數
先預處理出所有滿足條件的第一行,然後從第二行開始轉移。
最後答案為dp[n][(1當n**:
#include #includeview code#include
#include
#include
#define mod 1000000007
#define ll long long
using
namespace
std;
#define n 2100ll dp[
13][n];
intn,m;
int firstline(int
state)
else
return0;
}else
i++;
}return1;
}int can(int ka,int kb) //
ka:這一行,kb:上一行
else
//上一行為0,豎著放的
i++;
}else
//這一行i列為0,上一行i列必須填充
}return1;
}int
main()
memset(dp,
0,sizeof
(dp));
if(n
swap(n,m);
int max = (1
<1
;
for(sa=0;sa<=max;sa++)
for(i=1;i//
行遞增 }
}printf(
"%lld\n
",dp[n-1
][max]);
}return0;
}
CDOJ 885 方老師買錶
方老師買錶 time limit 1000ms memory limit 65535kb 64bit io format lld llu submit status description 由於方老師出色的專題講座,他的名氣迅速擴散到全國各地,並通過各地的講座賺到了很多錢,鑑於現在盛行買錶,於是方老...
UESTC 方老師與素數
方老師最近很喜歡素數,他想玩乙個遊戲 現在有兩個 4 位的素數 n 和 m 你一次可以改變 n 的一位數字,並且改變過後的新數字必須也是個素數,並且也不能有前導 0 請問使 n 變為 m 最少需要多少步。例如n 1033 m 8179 那麼可行的變化是 1033 1733 3733 3739 377...
UESTC 1901 方方是個壞孩子
方方是個壞孩子 方方是乙個調皮的孩子,每天到處搞破壞把妹子,鄰居都討厭他。一天 方方不小心把鄰居 老姚神的魔法棒給摔成了n段,長度分別為a0,a 1,a n 1。方方雖然調皮,但還是不敢招惹可怕的 老姚神,修復魔棒是如此的艱難,只能請求另乙個鄰居 哈利波特大 用魔法把魔棒修復,但 哈利波特大 正在忙...