当前位置:网站首页>高斯消元 AcWing 884. 高斯消元解异或線性方程組
高斯消元 AcWing 884. 高斯消元解异或線性方程組
2022-07-05 06:18:00 【T_Y_F666】
高斯消元 AcWing 884. 高斯消元解异或線性方程組
原題鏈接
算法標簽
線性空間 高斯消元 异或
思路
代碼
#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(){// 高斯消元,答案存於a[i][n]中,0 <= i < n
// c代錶列 r代錶行
int c, r;
// 按列枚舉
for(c=0, r=0; c<n; ++c){
int t=r;
rep(i, r, n){
if(a[i][c]){// 找非零行
t=i;
break;
}
}
if(!a[t][c]){
continue;
}
rep(i, c, n+1){// 將非零行換到最頂端
swap(a[r][i], a[t][i]);
}
rep(i, r+1, n){// 用非零行與下面列進行運算消除為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;// 無解
}
}
return 1;// 有無窮多組解
}
Rep(i, n-1, 0){
rep(j, i+1, n){
a[i][n]^=a[i][j]*a[j][n];
}
}
return 0;// 有唯一解
}
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;
}
原創不易
轉載請標明出處
如果對你有所幫助 別忘啦點贊支持哈
边栏推荐
- Leetcode array operation
- Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
- Simple selection sort of selection sort
- [rust notes] 17 concurrent (Part 1)
- MatrixDB v4.5.0 重磅发布,全新推出 MARS2 存储引擎!
- Single chip computer engineering experience - layered idea
- Chart. JS - Format Y axis - chart js - Formatting Y axis
- Leetcode-6110: number of incremental paths in the grid graph
- 1.15 - input and output system
- QQ电脑版取消转义符输入表情
猜你喜欢
Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
Overview of variable resistors - structure, operation and different applications
LeetCode-54
MySQL advanced part 2: optimizing SQL steps
Is it impossible for lamda to wake up?
MySQL advanced part 1: index
Leetcode-6108: decrypt messages
4. 对象映射 - Mapping.Mapster
MatrixDB v4.5.0 重磅发布,全新推出 MARS2 存储引擎!
LaMDA 不可能觉醒吗?
随机推荐
Regulations for network security events of vocational group in 2022 Guizhou Vocational College skill competition
阿里新成员「瓴羊」正式亮相,由阿里副总裁朋新宇带队,集结多个核心部门技术团队
Open source storage is so popular, why do we insist on self-development?
leetcode-556:下一个更大元素 III
Leetcode-1200: minimum absolute difference
开源存储这么香,为何我们还要坚持自研?
一些工具的记录2022
Daily question 1189 Maximum number of "balloons"
Presentation of attribute value of an item
Redis publish subscribe command line implementation
Appium automation test foundation - Summary of appium test environment construction
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
MySQL advanced part 1: View
MySQL advanced part 2: optimizing SQL steps
Leetcode-31: next spread
Leetcode backtracking method
Data visualization chart summary (I)
LVS简介【暂未完成(半成品)】
MySQL advanced part 2: SQL optimization
[BMZCTF-pwn] ectf-2014 seddit