当前位置:网站首页>Gauss Cancellation acwing 884. Solution d'un système d'équations Xor linéaires par élimination gaussienne
Gauss Cancellation acwing 884. Solution d'un système d'équations Xor linéaires par élimination gaussienne
2022-07-05 06:18:00 【T Y F666】
Gauss cancel AcWing 884. Solution d'élimination gaussienne pour un système d'équations Xor linéaires
Lien vers la question originale
AcWing 884. Solution d'élimination gaussienne pour un système d'équations Xor linéaires
Étiquette de l'algorithme
Espace linéaire Gauss cancel XOR
Idées

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 cancel, Réponse stockée dans a[i][n]Moyenne,0 <= i < n
// cColonne représentative rLigne représentative
int c, r;
// Liste par colonne
for(c=0, r=0; c<n; ++c){
int t=r;
rep(i, r, n){
if(a[i][c]){// Trouver une ligne non nulle
t=i;
break;
}
}
if(!a[t][c]){
continue;
}
rep(i, c, n+1){// Changez la ligne non nulle en haut
swap(a[r][i], a[t][i]);
}
rep(i, r+1, n){// Utilisez une ligne non nulle avec la colonne suivante pour éliminer à 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;// Pas de solution
}
}
return 1;// Il y a un nombre infini de solutions de groupe
}
Rep(i, n-1, 0){
rep(j, i+1, n){
a[i][n]^=a[i][j]*a[j][n];
}
}
return 0;// Il y a une solution unique
}
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;
}
L'originalité n'est pas facile
Réimpression Veuillez indiquer la source
Si ça t'aide N'oublie pas de me soutenir.
边栏推荐
- leetcode-22:括号生成
- liunx启动redis
- Chart. JS - Format Y axis - chart js - Formatting Y axis
- 【Rust 笔记】13-迭代器(下)
- WordPress switches the page, and the domain name changes back to the IP address
- Appium automation test foundation - Summary of appium test environment construction
- Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135
- 【Rust 笔记】16-输入与输出(下)
- SPI details
- Spark中groupByKey() 和 reduceByKey() 和combineByKey()
猜你喜欢

LeetCode 0107. Sequence traversal of binary tree II - another method

Arduino 控制的 RGB LED 无限镜

Data visualization chart summary (II)

redis发布订阅命令行实现

Leetcode stack related

Appium基础 — 使用Appium的第一个Demo

MySQL advanced part 2: storage engine

LeetCode 0107.二叉树的层序遍历II - 另一种方法

【LeetCode】Easy | 20. Valid parentheses

LeetCode-61
随机推荐
leetcode-556:下一个更大元素 III
leetcode-9:回文数
MySQL advanced part 2: the use of indexes
一些工具的记录2022
Niu Mei's math problems
Network security skills competition in Secondary Vocational Schools -- a tutorial article on middleware penetration testing in Guangxi regional competition
Leetcode heap correlation
1.13 - RISC/CISC
[BMZCTF-pwn] ectf-2014 seddit
阿里巴巴成立企业数智服务公司“瓴羊”,聚焦企业数字化增长
栈 AcWing 3302. 表达式求值
Liunx starts redis
[rust notes] 14 set (Part 2)
Open source storage is so popular, why do we insist on self-development?
CPU内核和逻辑处理器的区别
Leetcode-556: the next larger element III
MySQL advanced part 1: triggers
MySQL advanced part 2: optimizing SQL steps
Doing SQL performance optimization is really eye-catching
The difference between CPU core and logical processor