网站建设云技术公司推荐,先有域名才可以做网站吗,深圳宣传片制作排名前十名,皮革城网站建设方案正题
题目链接:http://poj.org/problem?id2411 题目大意
有nmnm的矩阵#xff0c;用1212的方块填满有多少种方法。 解题思路
用1表示竖着的块的上面#xff0c;其他都是0。 我们先计算出所有单排合法状态#xff08;横着的都是连续的偶数#xff09;。 然后我们用sta…正题
题目链接:http://poj.org/problem?id2411 题目大意
有n×mn×mn\times m的矩阵用1×21×21\times 2的方块填满有多少种方法。 解题思路
用1表示竖着的块的上面其他都是0。 我们先计算出所有单排合法状态横着的都是连续的偶数。 然后我们用statei or statei−1stateiorstatei−1state_i\ or\ state_{i-1}就是所有横着的方块就是0然后判断是否合法然后statei and statei−1stateiandstatei−1state_i\ and\ state_{i-1}就是所有竖着的不合法的方块就是1。 然后判断。 code
#includecstdio
#includealgorithm
using namespace std;
int n,m;
bool state[111];
long long f[12][111];
int main()
{while(scanf(%d%d,n,m)n){for(int i0;i1m;i){bool cnt0,has_odd0;for(int j0;jm;j)if(ij1)has_odd|cnt,cnt0;else cnt^1;state[i]has_odd|cnt?0:1;//统计合法情况}f[0][0]1;for(int i1;in;i)for(int j0;j1m;j){f[i][j]0;for(int k0;k1m;k)if((jk)0state[j|k])//判断是否合法f[i][j]f[i-1][k];//累计答案}printf(%lld\n,f[n][0]);}
}