POJ_1222_高斯消元
2024-09-06 16:43:30
题目描述:
每组数据给出一个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 ;
}
最新文章
- 汗,Google又调整了编译工具(升级SDK先备份!!!)
- Differences between INDEX, PRIMARY, UNIQUE, FULLTEXT in MySQL?
- 【SQL】小心字符串拼接导致长度爆表
- vs2005水晶报表无法运行在X64机器上
- android mvvm
- 拜托,这才是“Uber”的正确读法
- OC - 18.监听iPhone的网络状态
- Redis3在CENTOS6上的安装配置
- mvc的真实含义
- android开发隐藏了actionbar仍然短暂闪现的解决方法
- linux for 使用
- CoolBlog开发笔记第1课:项目分析
- leetCode刷题(使用链表做加法)
- sklearn中的损失函数
- 吴恩达机器学习笔记44-核函数(Kernels)
- Spring的IOC/DI使用到的技术
- layui的富文本编辑器怎么赋值
- 微信小程序 发送模版消息
- SQL基础--查询之四--集合查询
- LeetCode之二叉树作题java
热门文章
- EF 学习系列二 数据库表的创建和表关系配置(Fluent API、Data Annotations、约定)
- Redis-NoSQL入门和概述(一)
- red note8 pro谷歌套件
- linux搭建简单的web服务器
- [ASP.NET Core 3框架揭秘] Options[2]: 配置选项的正确使用方式[下篇]
- AcWing 247. 亚特兰蒂斯 | 扫描线
- 学以致用,react学习前奏准备阶段
- ios 页面滑动到底部无法往上滚的问题
- SnowflakeId雪花ID算法,分布式自增ID应用
- axios中请求传值方式