acwing 蒙德里安的梦想

简介: acwing 蒙德里安的梦想

291. 蒙德里安的梦想 - AcWing题库

#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std ;
const int N = 12 , M = 1<< N ;
typedef long long LL ;
int n , m ;
LL f[N][M] ;
vector<int> state[M] ;
bool st[M] ;
 
int main(){
  while(cin >> n >> m , n || m){
    for(int i = 0 ; i < 1 << n ; i ++){
      int cnt = 0 ;
      st[i] = true ;
      for(int j = 0 ; j < n ; j ++){
        if(i >> j & 1){
          if(cnt & 1) st[i] = false ; 
          cnt = 0 ;
        }
        else cnt ++ ;
      }
      if(cnt & 1) st[i] = false ;
    }
    memset(f,0,sizeof(f)) ;
    f[0][0] = 1 ;
    for(int i = 1 ; i <= m ; i ++){
      for(int j = 0 ; j < 1 << n ; j ++){
        for(int k = 0 ; k < 1 << n ; k ++){
          if((j&k) == 0 && st[j|k]) 
            f[i][j] += f[i-1][k] ;
        }
      }
    }
    cout << f[m][0] << endl ;
  }
  return 0 ;
}
 
目录
相关文章
|
8月前
acwing 恨7不成妻
acwing 恨7不成妻
58 0
AcWing 1265. 数星星(每日一题)
AcWing 1265. 数星星(每日一题)
|
3月前
acwing 110 抓住那头牛
acwing 110 抓住那头牛
17 0
AcWing 562. 壁画(每日一题)
AcWing 562. 壁画(每日一题)
|
3月前
|
人工智能
AcWing 528. 奶酪(每日一题)
AcWing 528. 奶酪(每日一题)
|
算法 C语言 索引
每日一题:LeetCode-283. 移动零
每日一题:LeetCode-283. 移动零
|
算法 C语言 C++
LeetCode 每日一题2347. 最好的扑克手牌
给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌,第 i 张牌大小
93 0
|
机器学习/深度学习 存储 人工智能
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
|
机器学习/深度学习 存储 容器
AcWing - 蓝桥杯集训每日一题(DAY 6——DAY 10)
一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。
AcWing - 蓝桥杯集训每日一题(DAY 6——DAY 10)
|
算法
【LeetCode】每日一题(1)
【LeetCode】每日一题(1)
76 0