本文主要是介绍算法课程笔记——高斯消元,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法课程笔记——高斯消元
先乘后除,精度
#include<bist/stdc++.h>usingnamespacestd;
#definemaxn 2800intn,m,x,ans;
bitset<N>a[N];
voidgauss(){
intcnt=0;
for(inti=1;i<=n;i++){
intmaxx=cnt+1;
for(intj=i+1;j<=n;j++){
if(a[j][i]>a[maxx][i])maxx=j;
}
swap(a[cnt+1],a[maxx]);
if(!a[i][i])continue;
cnt++;
for(intj=1;j<=n;j++){
if(a[j][i]==1&&i!=j)a[j]=a[j]^a[i];
}
}
if(cnt<n){
for(inti=1;i<=n;i++){
if(!a[i][i]&&a[i][n+1])printf("no solution\n"));
}
}
return;
}
intmain(){
scanf("%d",&n);
for(inti=1;i<=n;i++){
scanf("%d",&m);
if(m&1)a[i][n+1]=1,a[i][i]=1;
elsea[i][n+1]=0,a[i][i]=0;
while(m--){
scanf("%d",&x);a[i][x]=1;
}
}
gauss();
for(inti=1;i<=n;i++){
}
}
这篇关于算法课程笔记——高斯消元的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!