洛谷P3389 【模板】高斯消元法
来源:互联网 发布:淘宝神舟昆山工厂店 编辑:程序博客网 时间:2024/05/17 08:54
题目描述
给定一个线性方程组,对其求解。
输入样例#1:
3
1 3 4 5
1 4 7 3
9 3 2 2
输出样例#1:
-0.97
5.18
-2.39
分析:对于第i个方程用它的第i个元消掉第i+1个方程后面每个方程的第i个元,如果第i个方程的i消为0则此方程组有无穷解或无解,这样到最后一个方程只有一个元,然后往上解就好了。
代码
#include <cstdio>#define N 200using namespace std;double a[N][N],b[N];int n;bool fl;void work(int m){ if (m==n) { b[n]=a[n][n+1]/a[n][n]; return; } for (int i=m+1;i<=n;i++) { double p=a[i][m]/a[m][m]; for (int j=m;j<=n+1;j++) { a[m][j]*=p; a[i][j]-=a[m][j]; } if (a[i][i]==0) { fl=true; return; } } work(m+1);}void get(int m){ if (m==0) return; double p=0; for (int i=m+1;i<=n;i++) p+=a[m][i]*b[i]; b[m]=(a[m][n+1]-p)/a[m][m]; get(m-1);}void gauss(){ work(1); if (fl) { printf("No Solution"); return; } get(n-1); for (int i=1;i<=n;i++) printf("%.2lf\n",b[i]);}int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) for (int j=1;j<=n+1;j++) scanf("%lf",&a[i][j]); gauss();}
阅读全文
0 0
- 洛谷P3389 【模板】高斯消元法
- 洛谷 P3389 【模板】高斯消元法
- 洛谷 P3389 【模板】高斯消元法
- 洛谷P3389 【模板】高斯消元法
- 洛谷P3389 【模板】高斯消元法
- 洛谷P3389 【模板】高斯消元法
- P3389 【模板】高斯消元法
- 洛谷 P3389 高斯消元模板题
- 【洛谷】3389 【模板】高斯消元法
- 高斯消元法模板
- 高斯消元法 模板
- 高斯消元法模板
- 高斯消元法 (模板)
- 高斯消元法模板
- [模板]高斯消元法
- 高斯消元法模板
- 【模板】三分法 (模板题:洛谷P3382)
- 模板:(数学:高斯消元法)
- Unity动态构建Mesh来绘制任意多边形
- 1139. First Contact (30)
- (ssl 2291)分组背包
- 汇编语言学习----汇编程序中的子程序设计
- HDU 2519.新生晚会
- 洛谷P3389 【模板】高斯消元法
- wordpress导入数据错误MySQL返回:#1273
- 物理知识(四)
- linux中路由、策略路由
- opencv库图像特征提取与匹配--参考SLAM十四讲7.2
- 「架构技术专题」这9种高性能高可用高并发的技术架构你还不知道?
- GitHub 仓库 (repository) Watch / Star / Fork / Follow
- 阿里云Linux服务器利用VNC-Server实现远程图形桌面登录
- KMP算法