状压dp求助
查看原帖
状压dp求助
285373
BlachSnake楼主2021/4/6 19:09
#include<iostream>
using namespace std;
const int N=12,M=1<<N,P=100000000;
int a[N|3],f[N|3][M|3];
bool b[M|3];
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int m,n,o,x,s=0;
	cin>>m>>n,o=1<<n;
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			cin>>x,a[i]=a[i]<<1|x;
	for(int i=0;i<o;i++)
		b[i]=i&i<<1==0&&i&i>>1==0;
	f[0][0]=1;
	for(int i=1;i<=m;i++)
		for(int j=0;j<o;j++)
			if(b[j]&&j&a[i]==j)
				for(int k=0;k<o;k++)
					if(k&j==0)
						(f[i][j]+=f[i-1][k])%=P;
	for(int i=0;i<o;i++)
		(s+=f[m][i])%=P;
	cout<<s<<endl;
	return 0;
}

RT,程序一直输出0……

求调QwQ

2021/4/6 19:09
加载中...