zoukankan      html  css  js  c++  java
  • poj1222 EXTENDED LIGHTS OUT<高斯消元>

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

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3  int d[35][35], x[35], map[7][7];
     4  const int N=30;
     5  void Gauss(  )
     6  {
     7     int i=1, j, p, k, t;
     8     for( j=1; j<=N; ++ j ){
     9         for( p=i;p<=N; ++ p ){
    10             if(d[p][j])break ;
    11         }
    12         if( p>N )continue;
    13         if( p!=i ){
    14             for( k=j; k<=N+1; ++k ){
    15                 t=d[p][k],d[p][k]=d[i][k],d[i][k]=t;
    16             }
    17         }
    18         for( p=i+1; p<=N; ++p ){
    19             if( d[p][j] ){
    20                 for(k=j;k<=N+1; ++k ){
    21                     d[p][k]^=d[i][k];
    22                 }
    23             }
    24         }
    25         ++i;
    26     }
    27     memset( x, 0, sizeof x );        
    28     for( p=N; p>=1; --p){
    29         for( k=p+1; k<=N; ++ k ){
    30                 x[p]^=( x[k]&&d[p][k] );
    31         }
    32         x[p]^=d[p][N+1];
    33     }
    34     for( int i=1; i<=30; ++i ){
    35         printf( "%d ", x[i]);
    36         if( i%6==0 )
    37             puts("");    
    38     }
    39     //puts( "" );
    40 }
    41 int main( )
    42 {
    43     int T,Case=1;
    44     scanf( "%d", &T );
    45     while(T--) {
    46         memset(d, 0, sizeof d);
    47         for( int i=1; i<=30; ++i )
    48             d[i][i]=1;
    49         for( int i=0; i<5; ++ i ){
    50             for(int j=0; j<6;++j ){
    51                 scanf( "%d", &map[i][j] );
    52                 if( map[i][j] )    d[i*6+j+1][31]=1;
    53                     
    54                 if( i>0 )d[(i-1)*6+j+1][i*6+j+1]=1;    
    55                 if( j>0 )d[i*6+j][i*6+j+1]=1;    
    56                 if( i<4 )d[(i+1)*6+j+1][i*6+j+1]=1;    
    57                 if( j<5 )d[i*6+j+2][i*6+j+1]=1;    
    58             }    
    59         } 
    60         printf( "PUZZLE #%d\n", Case++ );
    61         Gauss( );
    62     } 
    63     return 0;    
    64 } 
  • 相关阅读:
    git安装
    git
    运维项目维护个人总结经验
    redis基本命令
    mysql基础常用命令
    进入Linux单用户模式
    Nginx查看并发链接数
    linux编写脚本检测本机链接指定IP段是否畅通
    集体干死java 在启动.sh
    系统优化小脚本
  • 原文地址:https://www.cnblogs.com/jian1573/p/2613267.html
Copyright © 2011-2022 走看看