cxlian25 @ 2023-03-27 18:15:51
#include <bits/stdc++.h>
#define p 2008
using namespace std;
int n,m;
char s[65];
int t[65];
int shu[65][65];
void insert(int x,char *s){
for(int i=1;i<=n;i++){
if(s[i]=='O')shu[x][i]=1;
else shu[x][i]=0;
}
for(int i=n;i>=1;i--){
if(!shu[x][i])continue;
if(!t[i]){
t[i]=x;
break;
}
else{
for(int j=i;j>=1;j--){
shu[i][j]^=shu[t[i]][j];
}
}
}
}
int mi(int x){
int a=2;
int sum=1;
while(x){
if(x&1)sum=(sum*a)%p;
a=(a*a)%p;
x>>=1;
}
return sum;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%s",s+1);
insert(i,s);
}
int ans=0;
for(int i=1;i<=n;i++){
if(t[i])ans++;
}
printf("%d\n",mi(ans));
return 0;
}
by cxlian25 @ 2023-03-27 18:23:17
换成实数储存而不是数组就对了,不知道这个为什么不行,怎么会是啊
by ZackofZHOU @ 2024-09-05 13:35:24
@cxlian25 不开long long
见祖宗