zoukankan      html  css  js  c++  java
  • 【Luogu】P2447外星千足虫(高斯消元)

      题目链接

      高斯消元解%2意义下的方程,Bitset优化一下。

      在消的过程中就能顺便把有解的第一问求出来,记录一下访问过的最大行。

      

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cctype>
    #include<cstdlib>
    #include<bitset>
    #define maxn 1020
    #define maxm 2020
    using namespace std;
    inline long long read(){
        long long num=0,f=1;
        char ch=getchar();
        while(!isdigit(ch)){
            if(ch=='-')    f=-1;
            ch=getchar();
        }
        while(isdigit(ch)){
            num=num*10+ch-'0';
            ch=getchar();
        }
        return num*f;
    }
    
    bitset<maxn>s[maxm];
    
    char c[maxn];
    
    int main(){
        int n=read(),m=read();
        for(int i=1;i<=m;++i){
            scanf("%s",c+1);
            for(int j=1;j<=n;++j)    s[i][j]=c[j]-'0';
            s[i][n+1]=read();
        }
        int cnt=0;bool flag=0;
        for(int i=1;i<=n;++i){
            int now=0;
            for(int j=i;j<=m;++j)
                if(s[j][i]){
                    now=j;
                    break;
                }
            if(now==0){
                flag=1;
                break;
            }
            if(cnt<now)    cnt=now;
            if(now^i)    swap(s[now],s[i]);
            for(int j=1;j<=m;++j){
                if(j==i)    continue;
                if(s[j][i])    s[j]^=s[i];
            }
        }
        if(flag){
            printf("Cannot Determine");
            return 0;
        }
        printf("%d
    ",cnt);
        for(int i=1;i<=n;++i){
            if(s[i][n+1])    printf("?y7M#
    ");
            else            printf("Earth
    ");
        }
        return 0;
    }
  • 相关阅读:
    boot.asm
    C talk
    C 数据类型
    Locks, Deadlocks, and Synchronization
    C++的RTTI 观念和用途
    setup.asm
    驱动对象设备对象设备栈
    JNI 内存泄漏
    KMP 字符串匹配算法
    解开 Windows 下的临界区中的代码死锁
  • 原文地址:https://www.cnblogs.com/cellular-automaton/p/8680722.html
Copyright © 2011-2022 走看看