牛客网暑期ACM多校训练营(第七场)- C - Bit Compression(暴力)

牛客网暑期ACM多校训练营(第七场)- C - Bit Compression

题意:

一个长度为2^n的二进制数,每次对这个数进行&、^、|三种操作中的一种,每次操作将两个相邻的数进行该操作得到新的二进制数,然后继续向下,求最后剩下一个1有多少种方法。

 整个效率为O(3^n)在最后几步记忆化一下就能过了。

太多步的话要存的状态太多空间会炸,所以适当就好。

 

#include 
#include 
#include 

using namespace std;
typedef long long int LL;

mapmp;
LL dfs(int *s,int sz){
    LL ss = 0;
    if(sz <= 16) {
        for(int i=0;i=0;i--) a[i] = getchar() - '0';
    printf("%lld\n", dfs(a, 1<

 

你可能感兴趣的:(模拟)