蒟蒻代码在线求调教
查看原帖
蒟蒻代码在线求调教
641612
lanjiaxin404楼主2023/7/13 10:52

蒟蒻代码在线求调教@Crsuh2er0

#include<bits/stdc++.h>
using namespace std;
const int mod=1e8;
const int N=1e6+10;
int g[N];
int s[N];
int f[5500][5500];
int cnt;
int n,m;
inline int read(){
    int x=0,f=1;char ch=getchar();
    while (ch<'0'||ch>'9') {if(ch=='-')f=-1; ch=getchar();}
    while (ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0'; ch=getchar();}
    return x*f;
}
int main(){
	cin>>n>>m;
		for(int i=1;i<=n;i++)
		for(int i=1;i<=m;i++){
			int x;
			cin>>x;
			g[i]=(g[i]<<1)+x;
		} 	
	for(int i=0;i<(1<<m);i++){
		if(!(i&i>>1)){
			s[cnt++]=i;
		}
	}
	f[0][0]=1;
	for(int i=1;i<=n+1;i++)
		for(int a=0;a<cnt;a++)
			for(int b=0;b<cnt;b++)
				if(!(s[a]&s[b])&&(s[a]&g[i]==s[a]))
					f[i][a]=(f[i][a]+f[i-1][b])%mod;
	cout<<f[n+1][0];
	return 0;
}
2023/7/13 10:52
加载中...