POJ1222 EXTENDED LIGHTS OUT 高斯消元 XOR方程组

http://poj.org/problem?id=1222

在学校oj用搜索写了一次,这次写高斯消元,haoi现场裸xor方程消元没写出来,真实zz。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<map>
 7 using namespace std;
 8 #define LL long long
 9 int a[35]={};
10 int x[35][35]={};
11 int id[35]={};
12 int main(){
13     int T;scanf("%d",&T);
14     for(int k=1;k<=T;++k){
15         int y;memset(x,0,sizeof(x));memset(id,0,sizeof(id));
16         for(int i=1;i<=30;i++){
17             scanf("%d",&a[i]);y=i%6;if(y==0)y=6;
18             x[i][0]=a[i]; x[i][i]=1;
19             if(i-6>0)x[i][i-6]=1;
20             if(y>1)x[i][i-1]=1;
21             if(i+6<=30)x[i][i+6]=1;
22             if(y<6)x[i][i+1]=1;
23         }
24         for(int i=1;i<30;i++){
25             if(!x[i][i]){
26                 for(int j=i+1;j<=30;j++){
27                     if(x[j][i]){
28                         for(int w=i;w<=30;w++){
29                             swap(x[j][w],x[i][w]);
30                         }swap(x[j][0],x[i][0]);
31                         break;
32                     }
33                 }
34             }
35             if(!x[i][i])continue;
36             for(int j=i+1;j<=30;j++){
37                 if(!x[j][i])continue;
38                 for(int w=i;w<=30;w++){
39                     x[j][w]^=x[i][w];
40                 }x[j][0]^=x[i][0];
41             }
42         }
43         for(int i=30;i>=1;i--){
44             int z=0;
45             for(int j=30;j>i;j--)z^=(x[i][j]*id[j]);
46             if(x[i][i]==0)id[i]=0;
47             else{
48                 if(z==x[i][0]){
49                     id[i]=0;
50                 }
51                 else{
52                     id[i]=1;
53                 }
54             }
55         }
56         printf("PUZZLE #%d\n",k);
57         for(int i=1;i<=5;i++){
58             for(int j=1;j<=6;j++){
59                 printf("%d ",id[(i-1)*6+j]);
60             }printf("\n");
61         }
62     }
63     return 0;
64 }
View Code

 

 

posted @ 2018-05-08 16:22  鲸头鹳  阅读(136)  评论(0编辑  收藏  举报