poj 1222EXTENDED LIGHTS OUT
高斯消元的题本质思想一样。
学习网址:http://www.cnblogs.com/rainydays/archive/2011/08/31/2160748.html
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
short g[][],f[][],m[][]={{,},{,},{,-},{,},{-,}},x[];
short swap(short &a,short &b){
a=a^b;
b=a^b;
a=a^b;
}
void work(){
memset(x,,sizeof(x));//无关项默认为0
short i,j,k,l;
for(i=,j=;j<;){
for(k=i;k<;k++){
if(g[k][j]!=)
break;
}
if(k==){
j++;
continue;
}
if(k!=i){
for(l=j;l<=;l++)
swap(g[k][l],g[i][l]);
}
for(k=i+;k<;k++){
if(g[k][j])
for(l=j;l<=;l++){
g[k][l]=g[i][l]^g[k][l];
}
}
i++;j++;
}//j==30
for(k=i-;k>=;k--){
x[k]=g[k][];
for(l=;l>k;l--){
x[k]^=g[k][l]&&x[l];
}
}//题中已经保证有解,无需再进行有无解的判断
}
void print(){
short i=,j=;
for(;i<;i++){
cout<<x[i*];
for(j=;j<;j++){
cout<<' '<<x[i*+j];
}
cout<<endl;
}
}
int main(){
//freopen("D:\\INPUT.txt","r", stdin);
int n,t;
cin>>n;
t=;
int i,j,k,a,b;
for(i=;i<;i++)
for(j=;j<;j++)
for(k=;k<;k++){
a=i+m[k][];
b=j+m[k][];
if(a>=&&b>=&&a<&&b<){
f[i*+j][a*+b]=;
}
}
while(t<=n){
cout<<"PUZZLE #"<<t++<<endl;
memcpy(g,f,sizeof(f));
for(i=;i<;i++){
scanf("%d",&g[i][]);
}
/* for(i=0;i<30;i++){
cout<<g[i][0];
for(j=1;j<=30;j++){
cout<<' '<<g[i][j];
}
cout<<endl;
}*/
//print();
work();
print();
}
return ;
}
poj 1222EXTENDED LIGHTS OUT的更多相关文章
- POJ:1222-EXTENDED LIGHTS OUT(矩阵反转)
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12956 Accepted: 8186 ...
- POJ 1222 EXTENDED LIGHTS OUT(翻转+二维开关问题)
POJ 1222 EXTENDED LIGHTS OUT 今天真是完美的一天,这是我在poj上的100A,留个纪念,马上就要期中考试了,可能后面几周刷题就没这么快了,不管怎样,为下一个200A奋斗, ...
- 【POJ】1222 EXTENDED LIGHTS OUT(高斯消元)
http://poj.org/problem?id=1222 竟然我理解了两天..... 首先先来了解异或方程组(或者说mod2方程组,modk的话貌似可以这样拓展出来) 对于一些我们需要求出的变量a ...
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元解异或方程组)
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10835 Accepted: 6 ...
- Poj 1222 EXTENDED LIGHTS OUT
题目大意:给你一个5*6的格子,每个格子中有灯(亮着1,暗着0),每次你可以把一个暗的点亮(或者亮的熄灭)然后它上下左右的灯也会跟着变化.最后让你把所有的灯熄灭,问你应该改变哪些灯. 首先我们可以发现 ...
- poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
http://poj.org/problem?id=1222 题意:给一个确定的5*6放入矩阵.每一个格子都有一个开关和一盏灯,0表示灯没亮,1表示灯亮着.让你输出一个5*6的矩阵ans[i][j], ...
- 【高斯消元】Poj 1222:EXTENDED LIGHTS OUT
Description In an extended version of the game Lights Out, is a puzzle with 5 rows of 6 buttons each ...
- OpenJudge 2811 熄灯问题 / Poj 1222 EXTENDED LIGHTS OUT
1.链接地址: http://bailian.openjudge.cn/practice/2811 http://poj.org/problem?id=1222 2.题目: 总时间限制: 1000ms ...
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
[题目链接] http://poj.org/problem?id=1222 [题目大意] 给出一个6*5的矩阵,由0和1构成,要求将其全部变成0,每个格子和周围的四个格子联动,就是说,如果一个格子变了 ...
随机推荐
- 获取web项目中的webroot目录路径
备忘,一段代码: @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-genera ...
- 深度学习之TensorFlow的介绍与安装
TensorFlow是一个采用数据流图(data flow graphs)用于数值计算的开源软件库.它最初是由Google大脑小组的研发人员设计开发的,用于机器学习和神经网络方面的研究.但是这个系统的 ...
- WIN7或2008远程连接特别慢的解决方法 【转】
方法一. 原因在于从vista开始,微软在TCP/IP协议栈里新加了一个叫做“Window Auto-Tuning”的功能.这个功能本身的目的是为了让操作系统根据网络的实时性能,(比如响应时间)来动态 ...
- VMware虚拟机无法启动,提示“无法打开磁盘,未能锁定文件”
VMware在进入linux时,提示:无法打开磁盘 F:\Debian\Debian linux2.6.x kernel.vmdk 或者某一个快照所依赖的磁盘原因: 未能锁定文件 问题出现的原因:虚拟 ...
- SQL Server Job
1. SQL Server Job创建:(SQL Server 代理 - 作业)鼠标右键.新建作业. 2.[常规]选项:定义作业名称.和说明信息. 3:[步骤]选项:新建步骤 4:定义步骤名称.设置对 ...
- unity 序列化和反序列化
什么是序列化和反序列化(1)序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程:. (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可 ...
- Django_Restframwork_序列号组件
第一种序列化方式. 第二种方法通过Model_to_dict方法进行创建 第三种方式序列号组件Serializers: 第四种方法序列化 五.ModelSerializer组件. POST校验 PU ...
- 【OCP-12c】CUUG 071题库考试原题及答案解析(20)
20.choose two Examine the description of the EMP_DETAILS table given below: Which two statements are ...
- 私有成员的设置和访问方式——setter和getter
在定义类时,为了保证类中成员数据安全性及的封装性,防止成员数据值被任意修改,通常将类中成员属性用private进行修饰. 被private修改的成员属性,只能在类中访问,跳出本类后,就无法直接访问. ...
- “ping”简单报错理解
了解ABC类IP地址:网络.主机.子网.广播. ———————————————————————————- 学会ping: ping www.itxdm.me 网络检测:ping某一主机可以正常启动!( ...