80分求助!!急嘤嘤嘤
查看原帖
80分求助!!急嘤嘤嘤
836104
cxlian25楼主2023/3/27 18:15
#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;
}
2023/3/27 18:15
加载中...