zoukankan      html  css  js  c++  java
  • BZOJ 1923: [Sdoi2010]外星千足虫 高斯消元+bitset

    高斯消元求解异或方程组,可以多学一下 $bitset$ 在位运算中的各种神奇操作.  

    #include <cstdio> 
    #include <bitset>   
    #define N 2004  
    #define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w",stdout) 
    using namespace std; 
    int n,m,ans;   
    char str[N]; 
    bitset<N>v[N];  
    int main() 
    { 
        int i,j,k; 
        // setIO("input"); 
        scanf("%d%d",&n,&m);
        for(i=1;i<=m;++i) 
        { 
            int tmp; 
            scanf("%s%d",str+1,&tmp); 
            for(j=1;j<=n;++j) v[i][j]=(str[j]=='0'?0:1);    
            v[i][n+1]=tmp;  
        }    
        for(i=1;i<=n;++i) 
        {
            for(j=i;j<=m;++j) 
            {
                if(v[j][i]) 
                {
                    ans=max(ans,j),swap(v[j],v[i]); 
                    break; 
                }
            }
            if(!v[i][i]) 
            {     
                printf("Cannot Determine
    "); 
                return 0;   
            }
            for(j=i+1;j<=m;++j) if(v[j][i]) v[j]^=v[i];    
        }
        printf("%d
    ",ans);   
        for(i=1;i<=n;++i) 
        {
            for(j=i+1;j<=n;++j) if(v[i][j]) v[i]^=v[j];
            if(v[i][n+1]) printf("?y7M#
    "); 
            else printf("Earth
    ");             
        }
        return 0; 
    }
    

      

  • 相关阅读:
    ObjectiveC分类
    显示时间格式
    js模拟签名
    安装卸载homebrew
    NSFastEnumeration
    拼接音频
    在Orchard模块中访问模块本地的AppSettings
    重装证书
    msysgit中文问题
    Apple Push Notification service
  • 原文地址:https://www.cnblogs.com/guangheli/p/11525479.html
Copyright © 2011-2022 走看看