【poj1222-又一道开关问题】高斯消元求解异或方程组
题意:给出一个5*6的图,每个灯泡有一个初始状态,1表示亮,0表示灭。每对一个灯泡操作时,会影响周围的灯泡改变亮灭,问如何操作可以使得所有灯泡都关掉。
题解:
这题和上一题几乎完全一样。。就是要输出解。。
然后我发现我回代的过程错了TAT 已修改上一题代码和模版
因为回代的过程合!并!了!
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- #include<cmath>
- #include<iostream>
- #include<algorithm>
- using namespace std;
- const int N=;
- int a[N][N],ans[N];
- int dx[]={,,,-,};
- int dy[]={,,,,-};
- int idx(int x,int y){return (x-)*+y;}
- void output()
- {
- for(int i=;i<=;i++)
- {
- for(int j=;j<=;j++)
- printf("%d ",a[i][j]);
- printf("\n");
- }
- printf("\n");
- }
- void gauss()
- {
- int i,j,k,l;
- memset(ans,,sizeof(ans));
- for(i=,j=;i<= && j<=;j++)
- {
- for(k=i;k<=;k++)
- if(a[k][j]) break;
- if(a[k][j])
- {
- for(l=;l<=;l++) swap(a[i][l],a[k][l]);
- for(l=;l<=;l++)//debug从1开始(回代)
- {
- if(l!=i && a[l][j])
- for(k=;k<=;k++)
- a[l][k]^=a[i][k];
- }
- i++;
- }
- }
- for(int j=;j<i;j++) ans[j]=a[j][];
- //自由元不是必须按的,则标记为0
- }
- int main()
- {
- freopen("a.in","r",stdin);
- int x,y,T,cas=;
- scanf("%d",&T);
- while(T--)
- {
- memset(a,,sizeof(a));
- for(int i=;i<=;i++)
- for(int j=;j<=;j++)
- {
- scanf("%d",&a[idx(i,j)][]);
- for(int k=;k<=;k++)
- {
- x=i+dx[k];y=j+dy[k];
- if(x> || y> || x< || y<) continue;
- a[idx(i,j)][idx(x,y)]=;
- }
- }
- for(int i=;i<=;i++) a[i][i]=;
- gauss();
- printf("PUZZLE #%d\n",++cas);
- for(int i=;i<=;i++)
- {
- printf("%d ",ans[i]);
- if(i%==) printf("\n");
- }
- }
- return ;
- }
【poj1222-又一道开关问题】高斯消元求解异或方程组的更多相关文章
- 【poj1830-开关问题】高斯消元求解异或方程组
第一道高斯消元题目~ 题目:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关 ...
- [POJ1222]EXTENDED LIGHTS OUT(高斯消元,异或方程组)
题目链接:http://poj.org/problem?id=1222 题意:开关是四连通的,每按一个就会翻转自己以及附近的四个格(假如有).问需要翻转几个,使他们都变成关. 把每一个灯看作一个未知量 ...
- 【BZOJ】2466: [中山市选2009]树 高斯消元解异或方程组
[题意]给定一棵树的灯,按一次x改变与x距离<=1的点的状态,求全0到全1的最少次数.n<=100. [算法]高斯消元解异或方程组 [题解]设f[i]=0/1表示是否按第i个点的按钮,根据 ...
- bzoj千题计划187:bzoj1770: [Usaco2009 Nov]lights 燈 (高斯消元解异或方程组+枚举自由元)
http://www.lydsy.com/JudgeOnline/problem.php?id=1770 a[i][j] 表示i对j有影响 高斯消元解异或方程组 然后dfs枚举自由元确定最优解 #in ...
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元解异或方程组)
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10835 Accepted: 6 ...
- [POJ1830]开关问题(高斯消元,异或方程组)
题目链接:http://poj.org/problem?id=1830 题意:中文题面,求的是方案数. 首先可以知道, 如果方案数不止一个的话,说明矩阵行列式值为0,即存在自由变元,由于变量只有两种状 ...
- [POJ1681]Painter's Problem(高斯消元,异或方程组,状压枚举)
题目链接:http://poj.org/problem?id=1681 题意:还是翻格子的题,但是这里有可能出现自由变元,这时候枚举一下就行..(其实这题直接状压枚举就行) /* ━━━━━┒ギリギリ ...
- hihocoder 第五十二周 高斯消元·二【高斯消元解异或方程 难点【模板】】
题目地址:http://hihocoder.com/contest/hiho57/problem/1 输入 第1..5行:1个长度为6的字符串,表示该行的格子状态,1表示该格子是亮着的,0表示该格子是 ...
- 【poj2947】高斯消元求解同模方程组【没有AC,存代码】
题意: p start enda1,a2......ap (1<=ai<=n)第一行表示从星期start 到星期end 一共生产了p 件装饰物(工作的天数为end-start+1+7*x, ...
随机推荐
- Delegate(QLabel和QComboBox)
一.最终效果 二.实现思路 1.createEditor()中create两个控件,分别是QLabel和QComboBox,将其添加到一个widget中,然后返回该widget: 2.setEdito ...
- JavaScript控制href属性进行钓鱼
前一阵子,发现JavaScript中允许临时改变<a>标签的href属性,当改变其属性后你点击它可能看不出有多严重,但是,它可以通过欺骗手段来诱骗用户透露他们的详细资料. // Uncom ...
- udf.dll 源码
一点关于UDF的发散思路 Author:mer4en7y Team:90sec 声明:UDF源码作者langouster 相信各位牛对UDF都不会陌生,看论坛叶总共享了一份UDF源码,以前一直没看过, ...
- 【Redis】- 总结精讲
本文围绕以下几点进行阐述 1.为什么使用redis2.使用redis有什么缺点3.单线程的redis为什么这么快4.redis的数据类型,以及每种数据类型的使用场景5.redis的过期策略以及内存淘汰 ...
- Chrome 的扩展功能
chrome浏览器修改cookie edit this cookie chrome插件是一款专为谷歌内核浏览器打造的cookie插件,安装谷歌浏览器edit this cookie插件后你就可以在浏览 ...
- Visual C++中对运行时库的支持
原文地址:http://blog.csdn.net/wqvbjhc/article/details/6612099 一.什么是C运行时库 1)C运行时库就是 C run-time library,是 ...
- ErrorUnable to tunnel through proxy. Proxy returns HTTP1.1 400 Bad Reques
导入项目的时候,一般会出现这种错误,因为我们的gradle版本,不对,所以默认AS导入后,回去下载你需要的gradle,所以很慢, 先打开:项目路径底下的\gradle\wrapper\gradle- ...
- 在网页中浏览PDF文档
刚开始找了好多插件,包括pdf.js,但都不理想,后来发现用iframe反而容易: <iframe src="test_pdf.pdf" width="800&qu ...
- 【其他】UTF-8带签名与不带签名
在 Visual Web Developer 另存为文件时,有编码选项,其中有: Unicode (UTF-8 with signature) - Codepage 65001 Unicode (UT ...
- 【bzoj1717】[Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组+离散化
题目描述 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠.我们称之为一个“模式”. John的牛奶按质量可以被赋予一 ...