当前位置:网站首页>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-54
leetcode-6110:网格图中递增路径的数目
4. Object mapping Mapster
SPI details
开源存储这么香,为何我们还要坚持自研?
Data visualization chart summary (I)
Spark中groupByKey() 和 reduceByKey() 和combineByKey()
Sqlmap tutorial (II) practical skills I
LeetCode 0108. Convert an ordered array into a binary search tree - the median of the array is the root, and the left and right of the median are the left and right subtrees respectively
[2021]IBRNet: Learning Multi-View Image-Based Rendering Qianqian
随机推荐
Daily question 1189 Maximum number of "balloons"
Currently clicked button and current mouse coordinates in QT judgment interface
博弈论 AcWing 894. 拆分-Nim游戏
LeetCode-54
Doing SQL performance optimization is really eye-catching
1.15 - input and output system
LaMDA 不可能觉醒吗?
C - XOR to all (binary topic)
SQL三种连接:内连接、外连接、交叉连接
做 SQL 性能优化真是让人干瞪眼
Leetcode heap correlation
多屏电脑截屏会把多屏连着截下来,而不是只截当前屏
Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135
Sqlmap tutorial (1)
927. 三等分 模拟
LeetCode 1200.最小绝对差
Leetcode-9: palindromes
Traditional databases are gradually "difficult to adapt", and cloud native databases stand out
Leetcode-31: next spread
Navicat連接Oracle數據庫報錯ORA-28547或ORA-03135