高斯消元(未完)
xukuan
2020-07-31 20:54:17
基本的概念:[https://www.luogu.com.cn/blog/pks-LOVING/p3389-mu-ban-gao-si-xiao-yuan-fa](https://www.luogu.com.cn/blog/pks-LOVING/p3389-mu-ban-gao-si-xiao-yuan-fa)
普通高斯消元模板:
```cpp
double a[N][N];
inline void Gauss(){
for(ll i=1; i<=n; i++){
ll r=i;
for(ll j=i+1; j<=n; j++){
if(fabs(a[r][i])<fabs(a[j][i])) r=j;
}
if(fabs(a[r][i])<eps) return printf("No Solution")&0;
if(i!=r) swap(a[i],a[r]);
double div=a[i][i];
for(ll j=i; j<=n+1; j++) a[i][j]/=div;
for(ll j=i+1; j<=n; j++){
div=a[j][i];
for(ll k=i; k<=n+1; k++) a[j][k]-=a[i][k]*div;
}
}
}
```
01高斯消元模板:
```cpp
bitset<N> a[N];
inline void Gauss(){
for(ll i=1; i<=n; i++){
ll now=i;
while(now<=m&&!a[now][i]) now++;
if(now==m+1) 无解
if(now!=i) swap(a[now],a[i]);
for(ll j=1; j<=m; j++){
if(i==j) continue;
if(!a[j][i]) continue;
a[j]^=a[i];
}
}
return flag;
}
```