poj1222 EXTENDED LIGHTS OUT<高斯消元>
2012-07-28 16:22
441 查看
链接: http://poj.org/problem?id=1222
View Code
View Code
#include <stdio.h> #include <string.h> int d[35][35], x[35], map[7][7]; const int N=30; void Gauss( ) { int i=1, j, p, k, t; for( j=1; j<=N; ++ j ){ for( p=i;p<=N; ++ p ){ if(d[p][j])break ; } if( p>N )continue; if( p!=i ){ for( k=j; k<=N+1; ++k ){ t=d[p][k],d[p][k]=d[i][k],d[i][k]=t; } } for( p=i+1; p<=N; ++p ){ if( d[p][j] ){ for(k=j;k<=N+1; ++k ){ d[p][k]^=d[i][k]; } } } ++i; } memset( x, 0, sizeof x ); for( p=N; p>=1; --p){ for( k=p+1; k<=N; ++ k ){ x[p]^=( x[k]&&d[p][k] ); } x[p]^=d[p][N+1]; } for( int i=1; i<=30; ++i ){ printf( "%d ", x[i]); if( i%6==0 ) puts(""); } //puts( "" ); } int main( ) { int T,Case=1; scanf( "%d", &T ); while(T--) { memset(d, 0, sizeof d); for( int i=1; i<=30; ++i ) d[i][i]=1; for( int i=0; i<5; ++ i ){ for(int j=0; j<6;++j ){ scanf( "%d", &map[i][j] ); if( map[i][j] ) d[i*6+j+1][31]=1; if( i>0 )d[(i-1)*6+j+1][i*6+j+1]=1; if( j>0 )d[i*6+j][i*6+j+1]=1; if( i<4 )d[(i+1)*6+j+1][i*6+j+1]=1; if( j<5 )d[i*6+j+2][i*6+j+1]=1; } } printf( "PUZZLE #%d\n", Case++ ); Gauss( ); } return 0; }
相关文章推荐
- poj 1222 EXTENDED LIGHTS OUT 高斯消元
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT (高斯消元)
- [POJ 1222]EXTENDED LIGHTS OUT(高斯消元)
- POJ 1681 Painter's Problem,POJ 1222 EXTENDED LIGHTS OUT (高斯消元之异或方程组),高斯消元模板
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj1222 EXTENDED LIGHTS OUT(YY+高斯消元)
- poj 1222 EXTENDED LIGHTS OUT 【高斯消元】
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- POJ 1222 EXTENDED LIGHTS OUT 高斯消元解异或方程组
- 【POJ1222】EXTENDED LIGHTS OUT 高斯消元、解异或方程组
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- POJ1222 EXTENDED LIGHTS OUT【高斯消元】
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元,开关问题)
- [poj1222]EXTENDED LIGHTS OUT(高斯消元)
- [POJ1222]EXTENDED LIGHTS OUT(高斯消元)
- poj1222--EXTENDED LIGHTS OUT(高斯消元)
- 【高斯消元】Poj 1222:EXTENDED LIGHTS OUT
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元异或矩阵)