高斯消元(未完)

xukuan

2020-07-31 20:54:17

Personal

基本的概念:[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; } ```