题目描述:

  每组数据给出一个5*6的0 1矩阵,每次操作可以把某个位置及其四周的位置0 1置换,要求输出操作位置的矩阵。

思路:

  每个位置操作2次则等于没有操作,所以每个位置有操作和不操作两种选择,爆搜应该会超时。

  在网上看到了高斯消元的做法,按照每个操作位置影响的位置构造系数矩阵,然后读入题目的数据构成增广矩阵。

  接下来的做法便和高斯消元一样,只是把原来的-变成了^。

  30条方程,30个未知量,所以最终的解也是唯一。

#include<cstdio>
#include<iostream>
using namespace std; int a[][] = {}; int main()
{
int n;
cin >> n;
for(int x = ;x <= n;x++)
{
for(int i = ;i < ;i++)
{
a[i][i] = ;
if(i > ) a[i][i-] = ;
if(i < ) a[i][i+] = ;
if(i%) a[i][i-] = ;
if((i+)%) a[i][i+] = ;
}
for(int i = ;i < ;i++) cin >> a[i][];
for(int i = ;i < ;i++)
{
int temp = i;
for(;temp < ;temp++)
{
if(a[temp][i])
{
for(int j = ;j <= ;j++) swap(a[temp][j],a[i][j]);
break;
}
}
for(int j = ;j < ;j++)
{
if(j != i && a[j][i])
{
for(int k = i;k <= ;k++)
{
a[j][k] ^= a[i][k];
}
}
}
}
cout << "PUZZLE #" << x << endl;
for(int i = ;i < ;i++)
{
if((i+)%) cout << a[i][] << " ";
else cout << a[i][] << endl;
}
}
return ;
}

最新文章

  1. 汗,Google又调整了编译工具(升级SDK先备份!!!)
  2. Differences between INDEX, PRIMARY, UNIQUE, FULLTEXT in MySQL?
  3. 【SQL】小心字符串拼接导致长度爆表
  4. vs2005水晶报表无法运行在X64机器上
  5. android mvvm
  6. 拜托,这才是“Uber”的正确读法
  7. OC - 18.监听iPhone的网络状态
  8. Redis3在CENTOS6上的安装配置
  9. mvc的真实含义
  10. android开发隐藏了actionbar仍然短暂闪现的解决方法
  11. linux for 使用
  12. CoolBlog开发笔记第1课:项目分析
  13. leetCode刷题(使用链表做加法)
  14. sklearn中的损失函数
  15. 吴恩达机器学习笔记44-核函数(Kernels)
  16. Spring的IOC/DI使用到的技术
  17. layui的富文本编辑器怎么赋值
  18. 微信小程序 发送模版消息
  19. SQL基础--查询之四--集合查询
  20. LeetCode之二叉树作题java

热门文章

  1. EF 学习系列二 数据库表的创建和表关系配置(Fluent API、Data Annotations、约定)
  2. Redis-NoSQL入门和概述(一)
  3. red note8 pro谷歌套件
  4. linux搭建简单的web服务器
  5. [ASP.NET Core 3框架揭秘] Options[2]: 配置选项的正确使用方式[下篇]
  6. AcWing 247. 亚特兰蒂斯 | 扫描线
  7. 学以致用,react学习前奏准备阶段
  8. ios 页面滑动到底部无法往上滚的问题
  9. SnowflakeId雪花ID算法,分布式自增ID应用
  10. axios中请求传值方式