zoukankan      html  css  js  c++  java
  • bzoj1923 [Sdoi2010]外星千足虫

    题目描述

    题解:

    高消解异或方程组板子题。

    如果消元结束后剩余方程(系数一定都为$0$)的结果不为$0$,那么无解;(但是这道题保证有解)

    如果存在自由元(即消掉几个元后剩余方程内该项系数都为$0$),那么多解。

    代码:

    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int N = 1050;
    const int M = 2050;
    int n,m,a[M][N];
    char mp[N];
    bool vis[N];
    int gs()
    {
        int ret = 0;
        for(int i=1;i<=n;i++)
        {
            int tmp = i;
            while(!a[tmp][i]&&tmp<=n)tmp++;
            if(tmp==n+1)
            {
                ret++;
                continue;
            }
            vis[i]=0;
            if(i!=tmp)
                for(int j=i;j<=n+1;j++)swap(a[i][j],a[tmp][j]);
            for(int j=i+1;j<=n;j++)if(vis[j]&&a[j][i])
                for(int k=i;k<=n+1;k++)
                    a[j][k]^=a[i][k];
        }
        return ret;
    }
    void up()
    {
        for(int i=n;i>=1;i--)
            for(int j=i-1;j>=1;j--)if(a[j][i])
                a[j][n+1]^=a[i][n+1];
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)
        {
            scanf("%s%d",mp+1,&a[i][n+1]);
            for(int j=1;j<=n;j++)
                a[i][j]=mp[j]-'0';
        }
        for(int i=1;i<=n;i++)vis[i]=1;
        int now = n;
        while(gs())
        {
            for(int i=1;i<=n;i++)
                if(vis[i])
                {
                    now++;
                    if(now>m)
                    {
                        puts("Cannot Determine");
                        return 0;
                    }
                    swap(a[now],a[i]);
                }
        }
        up();
        printf("%d
    ",now);
        for(int i=1;i<=n;i++)
            puts(a[i][n+1]?"?y7M#":"Earth");
        return 0;
    }
    
  • 相关阅读:
    前端规范标准(一)
    node之旅(3) Express之我的第一个应用
    node之旅(2) hello wrold!
    node之旅(1) 安装NodeJS
    CSS3 基础知识
    博客转移公告
    博客主题更换留念
    网络流-费用流zkw算法
    网络流-最大流ISAP
    字符串总结-三大“自动机”
  • 原文地址:https://www.cnblogs.com/LiGuanlin1124/p/10473868.html
Copyright © 2011-2022 走看看