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

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

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
#define LL long long
int a[]={};
int x[][]={};
int id[]={};
int main(){
int T;scanf("%d",&T);
for(int k=;k<=T;++k){
int y;memset(x,,sizeof(x));memset(id,,sizeof(id));
for(int i=;i<=;i++){
scanf("%d",&a[i]);y=i%;if(y==)y=;
x[i][]=a[i]; x[i][i]=;
if(i->)x[i][i-]=;
if(y>)x[i][i-]=;
if(i+<=)x[i][i+]=;
if(y<)x[i][i+]=;
}
for(int i=;i<;i++){
if(!x[i][i]){
for(int j=i+;j<=;j++){
if(x[j][i]){
for(int w=i;w<=;w++){
swap(x[j][w],x[i][w]);
}swap(x[j][],x[i][]);
break;
}
}
}
if(!x[i][i])continue;
for(int j=i+;j<=;j++){
if(!x[j][i])continue;
for(int w=i;w<=;w++){
x[j][w]^=x[i][w];
}x[j][]^=x[i][];
}
}
for(int i=;i>=;i--){
int z=;
for(int j=;j>i;j--)z^=(x[i][j]*id[j]);
if(x[i][i]==)id[i]=;
else{
if(z==x[i][]){
id[i]=;
}
else{
id[i]=;
}
}
}
printf("PUZZLE #%d\n",k);
for(int i=;i<=;i++){
for(int j=;j<=;j++){
printf("%d ",id[(i-)*+j]);
}printf("\n");
}
}
return ;
}

最新文章

  1. 坦克大战,看你能坚持几秒 ~~Duang~~Duang
  2. Javascript 实现HTML字符串的储存
  3. javascript_this的用法
  4. Bootstrap 3 简介
  5. [HDOJ5445]Food Problem(优先队列优化多重背包)
  6. sql server 2008安装过程中服务器配置出错
  7. [LeetCode]题解(python):039-Combination Sum
  8. ccflow学习下载网址
  9. AE与AO的区别
  10. Linux下*.tar.gz文件解压缩命令 find 命令
  11. bootstrap学习以及其插件
  12. 14.4.3.1 The InnoDB Buffer Pool
  13. Sqlserver中存储过程和游标的一些使用例子
  14. Golang 协程调度
  15. jquery制作移动端菜单栏左右滑动
  16. [echarts] 同指标对比柱状图
  17. request 模块详细介绍
  18. LeetCode--429--N叉树的层序遍历
  19. Android给TextView设置多个字体颜色
  20. tkinter获取键盘输入

热门文章

  1. ubuntu 14.04安装JDK
  2. 引发类型为“System.OutOfMemoryException”的异常
  3. linux中set、unset、export、env、declare,readonly的区别以及用法
  4. CentOS_5.5_安装GCC编译LiME
  5. Memcache 内存分配策略和性能(使用)状态检查【转】
  6. javascript多投事件的处理 (转)
  7. node项目中用到的一些模块
  8. P2471 [SCOI2007]降雨量
  9. 洛谷P1725 琪露诺
  10. MySQL学习笔记:调用存储过程或函数报1418错误