| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 6492 | Accepted: 4267 |
Description


Input
Output
Sample Input
2 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0
Sample Output
PUZZLE #1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 PUZZLE #2 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1
Source
//140K 0MS
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#pragma comment(linker, "/STACK:1024000000");
#define M 100007
#define inf 0x3f3f3f3f
#define ll long long
#define mod 1000000009
#define eps (1e-8)
using namespace std;
int matrix[37][37],id[37];
int dir[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
void Guess(int n,int m)
{
int i=0,j=0;
while(i<n&&j<m)
{
int max_i=i;
for(int k=i+1;k<n;k++)
if(matrix[k][j]==1)
{
max_i=k;
break;
}
if(matrix[max_i][j])
{
if(max_i!=i)
for(int k=0;k<m;k++)
swap(matrix[max_i][k],matrix[i][k]);
for(int u=0;u<n;u++)
if(i!=u&&matrix[u][j])
for(int k=j;k<m;k++)
matrix[u][k]=matrix[u][k]^matrix[i][k];
i++;
}
j++;
}
}
int main()
{
int n,cas=1;
scanf("%d",&n);
while(n--)
{
memset(matrix,0,sizeof(matrix));
memset(id,0,sizeof(id));
for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
{
scanf("%d",&id[i*6+j]);
matrix[i*6+j][30]=id[i*6+j];
}
for(int i=0;i<5;i++)
for(int j=0;j<6;j++)
{
matrix[i*6+j][i*6+j]=1;
for(int k=0;k<4;k++)
{
int x=i+dir[k][0];
int y=j+dir[k][1];
if(x>=0&&x<5&&y>=0&&y<6)
matrix[i*6+j][x*6+y]=1;
}
}
Guess(30,31);
printf("PUZZLE #%d\n",cas++);
for(int i=0;i<5;i++)
{
for(int j=0;j<6;j++)
printf("%d ",matrix[i*6+j][30]);
printf("\n");
}
}
}
POJ 1222 EXTENDED LIGHTS OUT 高斯消元
原文:http://www.cnblogs.com/gcczhongduan/p/5208325.html