• bzoj1923 [Sdoi2010]外星千足虫


    题目链接:bzoj1923 luo2447

    依然是异或方程组的高斯消元求解,第一问其实就是在高斯消元过程中访问到的用作主元的方程组的下标最大值,因为异或方程组是直接找到为当前元的系数为(1)的异或方程作为主元进行消元过程的

    第二问就是消元之后各个未知数的取值

    普通的高斯消元会收获TLE,但是我们可以使用(bitset)可以优化到(O(frac{n^2m}{32})),可以通过

    #include<iostream>
    #include<string.h>
    #include<string>
    #include<stdio.h>
    #include<algorithm>
    #include<math.h>
    #include<vector>
    #include<queue>
    #include<bitset>
    #include<map>
    #include<set>
    using namespace std;
    #define lowbit(x) (x)&(-x)
    #define sqr(x) (x)*(x)
    #define fir first
    #define sec second
    #define rep(i,a,b) for (register int i=a;i<=b;i++)
    #define per(i,a,b) for (register int i=a;i>=b;i--)
    #define maxd 1000000007
    #define eps 1e-6
    typedef long long ll;
    const int N=100000;
    const double pi=acos(-1.0);
    int n,m,ans=0;
    bitset<1010> a[2020];
    char s[2020];
    
    int read()
    {
    	int x=0,f=1;char ch=getchar();
    	while ((ch<'0') || (ch>'9')) {if (ch=='-') f=-1;ch=getchar();}
    	while ((ch>='0') && (ch<='9')) {x=x*10+(ch-'0');ch=getchar();}
    	return x*f;
    }
    
    void gauss()
    {
    	rep(i,1,n)
    	{
    		int now=i;
    		while ((now<=m) && (!a[now][i])) now++;
    		if (now>m) {puts("Cannot Determine");exit(0);}
    		ans=max(ans,now);
    		if (now!=i) swap(a[now],a[i]);
    		rep(j,1,m)
    		{
    			if (i==j) continue;
    			if (a[j][i]) a[j]^=a[i];
    		}
    	}
    }
    
    int main()
    {
    	n=read();m=read();
    	rep(i,1,m)
    	{
    		scanf("%s",s+1);
    		rep(j,1,m) a[i][j]=s[j]-'0';
    		a[i][n+1]=read();
    	}
    	gauss();
    	printf("%d
    ",ans);
    	rep(i,1,n)
    	{
    		if (a[i][n+1]) puts("?y7M#");
    		else puts("Earth");
    	}
    	return 0;
    }
    
  • 相关阅读:
    使用 CountDownLatch 控制多个线程执行顺序
    define 与 inline
    虚函数 纯虚函数 抽象方法 接口
    [转]Android 超高仿微信图片选择器 图片该这么加载
    Android ImageView src与backgroud
    Android View绘制原理分析
    Android 5.0 Default SMS App以及运营商授权SMS App
    Android 5.0 双卡信息管理分析
    Android 5.1 AOSP 源码获取
    Android 5.0 Uicc框架分析
  • 原文地址:https://www.cnblogs.com/encodetalker/p/10807189.html
Copyright © 2020-2023  润新知