题意:每个灯开启会使自身和周围的灯反转,要使全图的灯灭掉,判断灯开的位置。

解题关键:二进制高斯消元模板题。

复杂度:$O({n^3})$

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<iostream>
  6. #include<algorithm>
  7. using namespace std;
  8. const int N=;
  9. int a[N][N],ans[N];
  10. int dx[]={,,,-,};
  11. int dy[]={,,,,-};
  12. int idx(int x,int y){return (x-)*+y;}
  13. void gauss(int nn){
  14. int i,j,k,l;
  15. for(i=,j=;i<=nn&&j<=nn;j++){
  16. for(k=i;k<=nn;k++)if(a[k][j])break;
  17. if(a[k][j]){
  18. for(l=;l<=nn+;l++) swap(a[i][l],a[k][l]);
  19. for(l=;l<=nn;l++){
  20. if(l!=i&&a[l][j])
  21. for(k=;k<=nn+;k++)
  22. a[l][k]^=a[i][k];
  23. }
  24. i++;
  25. }
  26. }
  27. for(j=;j<i;j++) ans[j]=a[j][nn+];
  28. }
  29.  
  30. int main(){
  31. int T,n=,m=,nn=n*m;
  32. scanf("%d",&T);
  33. for(int ca=;ca<=T;ca++){
  34. memset(a,,sizeof a);
  35. for(int i=;i<=n;i++)for(int j=;j<=m;j++)scanf("%d",&a[idx(i,j)][nn+]);
  36. for(int i=;i<=n;i++)for(int j=;j<=m;j++)for(int k=;k<=;k++){
  37. int x=i+dx[k],y=j+dy[k];
  38. if(x>n||y>m||x<||y<) continue;
  39. a[idx(i,j)][idx(x,y)]=;
  40. }
  41. gauss(nn);
  42. printf("PUZZLE #%d\n",ca);
  43. for(int i=;i<=;i++)printf("%d%c",ans[i],i%==?'\n':' ');
  44. }
  45. return ;
  46. }

[poj1222]EXTENDED LIGHTS OUT(高斯消元)的更多相关文章

  1. poj1222 EXTENDED LIGHTS OUT 高斯消元||枚举

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8481   Accepted: 5479 Description In an ...

  2. POJ1222 EXTENDED LIGHTS OUT 高斯消元 XOR方程组

    http://poj.org/problem?id=1222 在学校oj用搜索写了一次,这次写高斯消元,haoi现场裸xor方程消元没写出来,真实zz. #include<iostream> ...

  3. POJ 1222 EXTENDED LIGHTS OUT (高斯消元)

    题目链接 题意:5*6矩阵中有30个灯,操作一个灯,周围的上下左右四个灯会发生相应变化 即由灭变亮,由亮变灭,如何操作使灯全灭? 题解:这个问题是很经典的高斯消元问题.同一个按钮最多只能被按一次,因为 ...

  4. EXTENDED LIGHTS OUT (高斯消元)

    In an extended version of the game Lights Out, is a puzzle with 5 rows of 6 buttons each (the actual ...

  5. POJ 1222 EXTENDED LIGHTS OUT [高斯消元XOR]

    题意: $5*6$网格里有一些灯告诉你一开始开关状态,按一盏灯会改变它及其上下左右的状态,问最后全熄灭需要按那些灯,保证有解 经典问题 一盏灯最多会被按一次,并且有很明显的异或性质 一个灯作为一个方程 ...

  6. BZOJ 1770: [Usaco2009 Nov]lights 燈( 高斯消元 )

    高斯消元解xor方程组...暴搜自由元+最优性剪枝 -------------------------------------------------------------------------- ...

  7. BZOJ1770:[USACO]lights 燈(高斯消元,DFS)

    Description 貝希和她的閨密們在她們的牛棚中玩遊戲.但是天不從人願,突然,牛棚的電源跳閘了,所有的燈都被關閉了.貝希是一個很膽小的女生,在伸手不見拇指的無盡的黑暗中,她感到驚恐,痛苦與絕望. ...

  8. [luoguP2962] [USACO09NOV]灯Lights(高斯消元 + dfs)

    传送门 先进行高斯消元 因为要求最少的开关次数,那么: 对于关键元,我们可以通过带入消元求出, 对于自由元,我们暴力枚举,进行dfs,因为只有开关两种状态,0或1 #include <cmath ...

  9. BZOJ 1770: [Usaco2009 Nov]lights 燈 [高斯消元XOR 搜索]

    题意: 经典灯问题,求最少次数 本题数据不水,必须要暴搜自由元的取值啦 想了好久 然而我看到网上的程序都没有用记录now的做法,那样做遇到自由元应该可能会丢解吧...? 我的做法是把自由元保存下来,枚 ...

随机推荐

  1. TCP交换数据流——Nagle算法简单记录

    Nagle算法: 该算法提出的目的是想解决网络中大量的小的TCP数据包造成网络拥塞的问题,举个例子,当客户端要发送一个字节的TCP数据包到服务器时,我们实际上产生了41字节长的分组:包括20字节的IP ...

  2. html学习笔记(1)--处理特殊字符以及其他的一些小细节

    冬日深夜,照着一本html的书籍练习,忍不住将一些常识记下来.书名是:<HTML与CSS入门经典> by [美] Julie Meloni(这是一位女士) 1.在大多数浏览器中,<s ...

  3. The template root requires exactly one element

    The template root requires exactly one element

  4. CentOS、乌班图设置固定静态IP

    CentOS.乌班图设置固定静态IP 一.centOS 1.编辑 ifcfg-eth0 文件 # vim /etc/sysconfig/network-scripts/ifcfg-eth0 2,在文件 ...

  5. Oozie-1-安装、配置 让Hadoop流动起来

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wl101yjx/article/details/27881739 写在前面一: 本文总结 基于Had ...

  6. DOM相关操作的案例

    1 . 模态框案例 示例 :  打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 <!DOCTYPE html> <htm ...

  7. JAVA使用相对路径读取配置文件

    JAVA使用相对路径读取配置文件[align=center][/align][size=medium][/size]   在软件开发中经常遇到读取配置文件,以及文件定位问题.今天做个总结.   (一) ...

  8. 分享知识-快乐自己:oracle表分区详解

    从以下几个方面来整理关于分区表的概念及操作: 1)表空间及分区表的概念: 2)表分区的具体作用: 3)表分区的优缺点: 4)表分区的几种类型及操作方法: 5)对表分区的维护性操作: 1):表空间及分区 ...

  9. python学习笔记:第七天(函数)

    Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 与C一样,Python提供了许多内建函数,比如print().同 ...

  10. Intellij IDEA 14代码错误提示如何调出来