当前位置:网站首页>Gaussian elimination acwing 884 Gauss elimination for solving XOR linear equations
Gaussian elimination acwing 884 Gauss elimination for solving XOR linear equations
2022-07-05 06:18:00 【T_ Y_ F666】
Gauss elimination AcWing 884. Gauss elimination is used to solve XOR linear equations
Original link
AcWing 884. Gauss elimination is used to solve XOR linear equations
Algorithm tags
Linear space Gauss elimination Exclusive or
Ideas

Code
#include<bits/stdc++.h>
#define int long long
#define abs fabs
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 105;
int a[N][N], eps = 1e-8;
int n;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
void put(int x) {
if(x<0) putchar('-'),x=-x;
if(x>=10) put(x/10);
putchar(x%10^48);
}
int gu(){// Gauss elimination , The answer lies in a[i][n] in ,0 <= i < n
// c Representative column r On behalf of the line
int c, r;
// Enumerate by column
for(c=0, r=0; c<n; ++c){
int t=r;
rep(i, r, n){
if(a[i][c]){// Find non-zero line
t=i;
break;
}
}
if(!a[t][c]){
continue;
}
rep(i, c, n+1){// Change non-zero lines to the top
swap(a[r][i], a[t][i]);
}
rep(i, r+1, n){// Use non-zero rows and the following columns to eliminate as 0
if(a[i][c]){
Rep(j, n, c){
a[i][j]^=a[r][j];
}
}
}
++r;
}
if(r<n){
rep(i, r, n){
if(abs(a[i][n])>eps){
return 2;// unsolvable
}
}
return 1;// There are infinite sets of solutions
}
Rep(i, n-1, 0){
rep(j, i+1, n){
a[i][n]^=a[i][j]*a[j][n];
}
}
return 0;// There is a unique solution
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
n=read();
rep(i, 0, n){
rep(j, 0, n+1){
a[i][j]=read();
}
}
int t=gu();
if(t==2){
puts("No solution");
}else if(t==1){
puts("Multiple sets of solutions");
}else{
rep(i, 0, n){
printf("%lld\n", a[i][n]);
}
}
return 0;
}
Originality is not easy.
Reprint please indicate the source
If it helps you Don't forget to praise and support 
边栏推荐
- Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135
- SPI details
- NotImplementedError: Cannot convert a symbolic Tensor (yolo_boxes_0/meshgrid/Size_1:0) to a numpy ar
- 【Rust 笔记】15-字符串与文本(上)
- Records of some tools 2022
- Record the process of configuring nccl and horovod in these two days (original)
- Spark中groupByKey() 和 reduceByKey() 和combineByKey()
- 博弈论 AcWing 894. 拆分-Nim游戏
- LaMDA 不可能觉醒吗?
- leetcode-9:回文数
猜你喜欢

SQLMAP使用教程(二)实战技巧一

QQ computer version cancels escape character input expression

博弈论 AcWing 893. 集合-Nim游戏

Navicat连接Oracle数据库报错ORA-28547或ORA-03135

LeetCode-54

MySQL怎么运行的系列(八)14张图说明白MySQL事务原子性和undo日志原理

MIT-6874-Deep Learning in the Life Sciences Week 7

做 SQL 性能优化真是让人干瞪眼

博弈论 AcWing 894. 拆分-Nim游戏
![[2020]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis](/img/20/826cc9d514496955a557439881234d.jpg)
[2020]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis
随机推荐
1.13 - RISC/CISC
[rust notes] 16 input and output (Part 1)
Arduino 控制的 RGB LED 无限镜
[rust notes] 17 concurrent (Part 2)
博弈论 AcWing 894. 拆分-Nim游戏
LeetCode-54
Chart. JS - Format Y axis - chart js - Formatting Y axis
SPI details
[rust notes] 17 concurrent (Part 1)
Leetcode backtracking method
Currently clicked button and current mouse coordinates in QT judgment interface
leetcode-31:下一个排列
leetcode-6108:解密消息
Leetcode-3: Longest substring without repeated characters
可变电阻器概述——结构、工作和不同应用
打印机脱机时一种容易被忽略的原因
Data visualization chart summary (I)
Sword finger offer II 058: schedule
Single chip computer engineering experience - layered idea
【Rust 笔记】15-字符串与文本(下)