洛谷P3389:【模板】高斯消元法
2018-03-26 11:07
423 查看
题目传送门:https://www.luogu.org/problemnew/show/P3389
题目分析:时隔多年(月),我终于入了高消这个坑。
表示挂一发模板就跑,以后复习用。
具体细节什么的还是自己YY吧,有益身心健康。
CODE:
题目分析:时隔多年(月),我终于入了高消这个坑。
表示挂一发模板就跑,以后复习用。
具体细节什么的还是自己YY吧,有益身心健康。
CODE:
#include<iostream> #include<string> #include<cstring> #include<cmath> #include<cstdio> #include<cstdlib> #include<stdio.h> #include<algorithm> using namespace std; const int maxn=110; const double eps=1e-8; double a[maxn][maxn]; int n; double Abs(double x) { if (x>0.0) return x; return -x; } int Gauss() { int R,r=1,c=1; while ( r<=n && c<=n ) { R=r; for (int i=r+1; i<=n; i++) if ( Abs(a[i][c])>Abs(a[R][c]) ) R=i; if (Abs(a[R][c])<eps) r--; else { for (int i=c; i<=n+1; i++) swap(a[R][i],a[r][i]); for (int i=r+1; i<=n; i++) if ( Abs(a[i][c])>eps ) { for (int j=c+1; j<=n+1; j++) a[i][j]=a[i][j]/a[i][c]-a[r][j]/a[r][c]; a[i][c]=0.0; } } r++; c++; } for (int i=r; i<=n; i++) if ( Abs(a[i][n+1])>eps ) return -1; if (r<=n) return n-r+1; for (int i=n; i>=1; i--) { for (int j=i+1; j<=n; j++) a[i][n+1]-=a[i][j]*a[j][n+1]; a[i][n+1]/=a[i][i]; } return 0; } int main() { freopen("3389.in","r",stdin); freopen("3389.out","w",stdout); scanf("%d",&n); for (int i=1; i<=n; i++) for (int j=1; j<=n+1; j++) { int x; scanf("%d",&x); a[i][j]=((double)x); } int temp=Gauss(); if (temp!=0) printf("No Solution\n"); else for (int i=1; i<=n; i++) printf("%.2lf\n",a[i][n+1]); return 0; }
相关文章推荐
- 洛谷 P3389 【模板】高斯消元法
- 洛谷P3389 【模板】高斯消元法
- 洛谷 P3389 【模板】高斯消元法
- 洛谷P3389 【模板】高斯消元法
- 洛谷P3389 【模板】高斯消元法
- 【洛谷 P3389】高斯消元法(高斯消元模板)
- 洛谷P3389 【模板】高斯消元法
- P3389 【模板】高斯消元法
- 【洛谷】3389 【模板】高斯消元法
- P3389 【模板】高斯消元法
- 洛谷 P3389 高斯消元模板题
- P3389 【模板】高斯消元法
- 【洛谷P3389】【模板】高斯消元
- 洛谷3389:【模板】高斯消元法——题解
- 洛谷.3389.[模板]高斯消元法
- 洛谷P2341 受欢迎的牛——Tarjan+缩点模板
- (洛谷 最小费用最大流 模板)
- 洛谷 P3371 【模板】单源最短路径(Dijkstra + 堆优化)
- 洛谷 P3369 【模板】普通平衡树(Treap/SBT)
- 【洛谷】3381 【模板】最小费用最大流