poj1222

题意:一个01矩阵,表示灯的亮灭状态,每次操作可以改变一个十字形状内的五个灯的状态。问能否将所有灯熄灭。

分析:高斯消元法

对于每个灯的两灭有影响的开关就是它附近十字形内的五个开关。所以对于每个灯可以列一个方程,即周围五个开关异或起来的结果应该可以使该灯熄灭。

就是利用线性代数知识,写出增广矩阵,化为阶梯形矩阵,有下到上依次解出各未知量。

View Code
#include <iostream>
#include
<cstdlib>
#include
<cstring>
#include
<cstdio>
usingnamespace std;

#define maxn 35

int f[maxn][maxn];
int g[maxn][maxn];
int x[maxn];
int dir[5][2] =
{
{
0, 0 },
{
0, 1 },
{
1, 0 },
{
-1, 0 },
{
0, -1 } };

void debug()
{
for (int i =0; i <30; i++)
{
for (int j =0; j <31; j++)
cout
<<""<< g[i][j];
cout
<< endl;
}
cout
<< endl;
}

void input()
{
for (int i =0; i <5; i++)
for (int j =0; j <6; j++)
scanf(
"%d", &g[i *6+ j][30]);
}

void work()
{
int k;
int row, col;
for (row =0, col =0; row <30&& col <30; row++, col++)
{
for (k = row; k <30; k++)
if (g[k][col] !=0)
break;
if (k ==30)
{
row
--;
continue;
}
if (k != row)
for (int i = col; i <=30; i++)
swap(g[row][i], g[k][i]);
for (int i = row +1; i <30; i++)
if (g[i][col])
for (int j = col; j <=30; j++)
g[i][j]
^= g[row][j];
}
for (int i = row; i >=0; i--)
{
x[i]
= g[i][30];
for (int j =29; j > i; j--)
x[i]
^= (g[i][j] && x[j]);
}
}

void print()
{
for (int i =0; i <5; i++)
{
printf(
"%d", x[i *6]);
for (int j =1; j <6; j++)
printf(
" %d", x[i *6+ j]);
putchar(
'\n');
}
}

int main()
{
//freopen("t.txt", "r", stdin);
for (int i =0; i <5; i++)
for (int j =0; j <6; j++)
for (int k =0; k <5; k++)
{
int a = i + dir[k][0];
int b = j + dir[k][1];
if (a >=0&& b >=0&& a <5&& b <6)
f[i
*6+ j][a *6+ b] =1;
}
int t;
scanf(
"%d", &t);
for (int i =0; i < t; i++)
{
printf(
"PUZZLE #%d\n", i +1);
memcpy(g, f,
sizeof(g));
input();
work();
print();
}
return0;
}

  

转载于:https://www.cnblogs.com/rainydays/archive/2011/08/31/2160748.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[react] React Hooks帮我们解决了哪些问题?

[react] React Hooks帮我们解决了哪些问题&#xff1f; React hooks help use get rid of js class and all trouble with this pointer. 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌…

李秋红130705010066

3-9、没有冗余度的信源还能不能压缩&#xff1f;为什么&#xff1f; 解答&#xff1a;可以压缩。这种情况下&#xff0c;不能使用无损压缩&#xff0c;但可以使用有损压缩。 3-10、不相关的信源还能不能压缩&#xff1f;为什么&#xff1f; 解答&#xff1a;可以压缩。对于不相…

iphone开发我的新浪微博客户端-用户登录准备篇(1.1)

首先说一下我这个的实现思路&#xff0c;登录支持多个账号&#xff0c;也就是说可以保存多个微博账号登录的时候选择其中一个登录。多个账号信息保存在sqlite的数据库中&#xff0c; 每一个账号信息就是一条记录, 当用户启动微博客户端的时候去取保存在sqlite数据库中的账号记录…

基于密度的异常值检测方法整理

基于密度的异常值检测方法的原理认为正常样本点所处的类簇密度要高于异常点样本所处的类簇密度。为解决实际异常值检测情况 中出现的问题&#xff0c;有一种基于局部异常因子 LOF 方法。

[react] 有在项目中使用过Antd吗?说说它的好处

[react] 有在项目中使用过Antd吗&#xff1f;说说它的好处 They gave every user a big surprise on Christmas Holiday. 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端…

TCP的流模式与UDP的报文模式对比

1 案例背景 在学习TCP-IP协议详解卷一时&#xff0c;读到介绍TCP协议的部分&#xff0c;发现TCP的首部是没有报文总长度字段的&#xff0c;而在UDP中是有的&#xff0c;对这个问题的思考引出了两者之间的区别。 2 案例分析 TCP报文的格式&#xff1a; TCP首部的格式&a…

GWT 入门介绍

From: http://blog.csdn.net/struts2/article/details/1758122 GWT 入门介绍 GWT使用JSON格式的数据通讯 GWT是 Google Web Toolkit的简称。 GWT是一个以Java语言为工具&#xff0c;以类似Swing的方式编写UI组件&#xff0c;之后通过GWT Compiler编译 为JavaScritp和HTM…

SQL Server 2008空间数据应用系列十一:Bing Maps中呈现GeoRSS订阅的空间数据

友情提示&#xff0c;您阅读本篇博文的先决条件如下&#xff1a; 1、本文示例基于Microsoft SQL Server 2008 R2调测。 2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。 3、熟悉或了解Microsoft SQL Server 2008中的空间数据类型。 4、具备相应&am…

聚类算法的分类整理

1、基于划分的聚类算法 基于划分的聚类算法 主要通过聚类中心的迭代重置&#xff0c;直到达到“簇内点足够近&#xff0c;簇间点足够远”的目标效果&#xff0c;完成样本集的最优化分。其算法优点是时间、空间复杂度低&#xff0c;可以处理大规模数据集。缺点包括容易陷入局部…

[react] 为什么标签里的for要写成htmlFor呢?

[react] 为什么标签里的for要写成htmlFor呢&#xff1f; 为了区别和html自身标签中属性 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

minGW64安装和使用 极简教程

1、下载minGW64 官网下载&#xff1a;https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/我的FTP&#xff1a;a、minGW64 install.exe b、解压免安装版 2、解压 3、添加环境变量 4、CMD 运行gcc 安装完成。 5、使用minGW编译C源码 6、运行

培训总结2

今天&#xff0c;我学习了工具类java.util.包中的几个平时经常用到的几个类&#xff0c;例如ArrayList、HashMap、Hashtable等几个类&#xff0c;在这我总结一下ArrayList的用法。 特征&#xff1a;允许null在内的所有元素&#xff0c;大致上等同于Vector类&#xff0c;但是他是…

GWT 开发入门

From: http://home.cnblogs.com/group/topic/47694.html 在使用GWT开发web程序时&#xff0c;首先得到GWT下载其SDK&#xff0c;目前的最新版为GWT 2.3。 安装插件&#xff0c;目前两大Java IDE&#xff1a; Eclipse 和 NetBeans都有其开发插件&#xff0c;建议使用Eclipse &…

[C#反编译教程]001.Reflector.NET反编译工具 v8.5绿色版+注册机+注册教程

截图 下载地址 Reflector.NET反编译工具 v8.5绿色版注册机 下载地址&#xff1a;http://pan.baidu.com/s/1mgN1Cpi 密码&#xff1a;mx19 简介 .NET Reflector是一个类浏览器和反编译器&#xff0c;.NET Reflector可以分析程序集并向你展示它的所有秘密。.NET 框架向全世界引入…

[react] 函数式组件有没有生命周期?为什么?

[react] 函数式组件有没有生命周期&#xff1f;为什么&#xff1f; 没有生命周期 因为他没有继承React.Component 所以也不需要render() 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌…

openOCD安装 极简教程

1、下载openOCD 官网下载&#xff1a;https://gnutoolchains.com/arm-eabi/openocd/我的FTP&#xff1a;openOCD 2、解压 3、添加环境变量 ->path 4、CMD运行openOCD 安装完成。

一起谈.NET技术,.NET4.0 之 Dynamic VS Reflection 效率

在我先前的文章中&#xff0c;不断的推广.NET4.0新特性。特别是.NET4.0 Dynamic 这个新特性。随之而来的问题也出现了—Dynamic 执行效率如何&#xff1f; 我们做开发的不光需要代码简洁&#xff0c;能够希望自己能够写出好的架构。还有一点非常重要的就是&#xff0c;我们的写…

在windows下写makefile编译代码

From: http://blog.163.com/xjming487126/blog/static/212951352007625114849843/ 在windows下写makefile编译代码 1.下载minGW 下载MinGW-5.0.0.exe&#xff0c;选择全安装。将minGW安装到F:\MinGW目录下。安装后将直接生成MSYS。运行MSYS即进入了一个linux模拟环境。如果是…

Javascript中函数声明与函数表达式的不同

定义函数的方式有两种&#xff1a;一种是函数声明&#xff0c;另一种是函数表达式。 函数声明的语法如下&#xff1a; 1 function functionName(arg0,arg1,arg2){ 2 //函数体 3 } 函数表达式的语法如下&#xff1a; 1 var functionName function(arg0,arg1,arg2){ 2 //函数…