
/**//*************************************************************************
Author: WHU_GCC
Created Time: 2007-8-28 20:53:12
File Name: pku2411.cpp
Description:
************************************************************************/
#include <iostream>
long long f[12][2048], n, m;
void dfs(int i, int j, int jj, int s)

{
if (s == m)
f[i + 1][jj] += f[i][j];
else if ((jj & (1 << s)) == 0)
{
dfs(i, j, jj | (1 << s), s + 1);
if (s < m - 1 && (jj & (1 << (s + 1))) == 0) dfs(i, j, jj, s + 2);
}
else
dfs(i, j, jj & ~(1 << s), s + 1);
}
int main()

{
while (scanf("%d%d", &n, &m), n + m != 0)
{
memset(f, 0, sizeof(f));
f[0][0] = 1;
for (int i = 0; i < n; i++)
for (int j = 0; j < (1 << m); j++)
if (f[i][j])
dfs(i, j, j, 0);
printf("%I64d\n", f[n][0]);
}
return 0;
}| 只有注冊用戶登錄后才能發表評論。 | ||
|
||
|
相關文章:
|
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
|