zoukankan      html  css  js  c++  java
  • POJ1222 高斯消元法解抑或方程

        第一次学怎么用高斯消元法解抑或方程组,思想其实很简单,方法可以看下面的链接:http://blog.csdn.net/zhuichao001/article/details/5440843

        有了这种思想之后,一些简单的翻牌问题也算是有了头绪,还记得之前做一到翻一次牌影响曼哈顿距离为k的点的题,现在看来是有思路,但那个貌似是900个点,不好搞呀,自己回头再想想吧。。先贴一记水题的代码

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    int m[10][10];
    int ans[10][10];
    int eq[40][40];
    
    void gauss(int a[40][40])
    {
        for(int i=0;i<30;++i){
            int k=i;
            for(;k<30;++k){
                if(a[k][i]!=0){
                    break;
                }
            }
            for(int j=0;j<=30;++j){
                swap(a[i][j],a[k][j]);
            }
            for(int j=0;j<30;++j){
                if(i!=j&&a[j][i]){
                    for(int k=0;k<=30;++k){
                        a[j][k]=a[i][k]^a[j][k];
                    }
                }
            }
        }
        for(int i=0;i<30;++i){
            ans[i/6][i%6]=eq[i][30];
        }
    }
    
    int main()
    {
        int T;cin>>T;int ca=0;
        while(T--)
        {
            memset(eq,0,sizeof(eq));
            for(int i=0;i<5;++i){
                for(int j=0;j<6;++j){
                    scanf("%d",&m[i][j]);
                    eq[i*6+j][30]=m[i][j];
                    eq[i*6+j][i*6+j]=1;
                    if(j-1>=0) eq[i*6+j][i*6+j-1]=1;
                    if(j+1<6)  eq[i*6+j][i*6+j+1]=1;
                    if(i*6+j-6>=0) eq[i*6+j][i*6+j-6]=1;
                    if(i*6+j+6<=29) eq[i*6+j][i*6+j+6]=1;
                }
            }
            gauss(eq);
            printf("PUZZLE #%d
    ",++ca);
            for(int i=0;i<5;++i){
                printf("%d",ans[i][0]);
                for(int j=1;j<6;++j){
                    printf(" %d",ans[i][j]);
                }
                puts("");
            }
        }
        return 0;
    }
  • 相关阅读:
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    National Treasures HDU
    Matrix HDU
    过山车 HDU
    Jimmy’s Assignment HDU
    Card Game Cheater HDU
    Uncle Tom's Inherited Land* HDU
    50 years, 50 colors HDU
  • 原文地址:https://www.cnblogs.com/chanme/p/3392775.html
Copyright © 2011-2022 走看看