poj 1222 EXTENDED LIGHTS OUT (高斯消元)
2015-03-15 10:34
197 查看
给出一个矩阵,按下某个位置会使周围反转,0变1,1变0,现在问按那些点能使矩阵全变为0.
这位大牛的题解将的很清楚
这位大牛的题解将的很清楚
#include<iostream> #include<math.h> #include<stdio.h> #include<algorithm> #include<string.h> #include<vector> #include<queue> #include<map> #include<set> using namespace std; #define B(x) (1<<(x)) typedef long long ll; const int oo=0x3f3f3f3f; const ll OO=1LL<<61; const int MOD=10007; const int maxn=35; int maze[maxn][maxn]; int ans[maxn]; void Gauss(){ int k,i,j; for(k=0;k<30;k++){ for(i=k;i<30;i++){ if(maze[i][k]!=0)break; } for(j=0;j<=30;j++){ swap(maze[k][j],maze[i][j]); } for(i=0;i<30;i++){ if(i!=k&&maze[i][k]){ for(int j=0;j<=30;j++) maze[i][j]^=maze[k][j]; } } } for(i=0;i<30;i++)ans[i]=maze[i][30]; } int main(){ int T; scanf("%d",&T); for(int cas=1;cas<=T;cas++){ memset(maze,0,sizeof maze); memset(ans,0,sizeof ans); for(int i=0;i<30;i++) scanf("%d",&maze[i][30]); for(int i=0;i<30;i++){ maze[i][i]=1; if(i%6!=0) maze[i-1][i]=1; if(i%6!=5) maze[i+1][i]=1; if(i>5) maze[i-6][i]=1; if(i<24) maze[i+6][i]=1; } Gauss(); printf("PUZZLE #%d\n",cas); for(int i=0;i<30;i++){ printf("%d",ans[i]); if(i%6==5)printf("\n"); else printf(" "); } } return 0; } /** */
相关文章推荐
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT 高斯消元
- [POJ1222]EXTENDED LIGHTS OUT(高斯消元,异或方程组)
- poj1222 EXTENDED LIGHTS OUT(YY+高斯消元)
- POJ 1222 EXTENDED LIGHTS OUT 二进制高斯消元 (开关翻转问题)
- 【高斯消元】Poj 1222:EXTENDED LIGHTS OUT
- [POJ1222]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(高斯消元解XOR方程组)
- poj1222--EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT (高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj1222 EXTENDED LIGHTS OUT 高斯消元
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(数学:高斯消元||爆搜:DFS)
- poj 1222 EXTENDED LIGHTS OUT (高斯消元)