标签:ace wap 个数 交换 lin bsp 最大值 swap style
https://www.luogu.com.cn/blog/ShineEternal/linear-equation-group
#include<cstdio> #include<cmath> #include<iostream> using namespace std; double a[105][105]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { for(int j=1;j<=n+1;j++) { scanf("%lf",&a[i][j]); } } for(int i=1;i<=n;i++)//枚举列(项) { int m=i; for(int j=i+1;j<=n;j++)//选出该列最大系数 { if(fabs(a[j][i])>fabs(a[m][i]))//fabs是取浮点数的绝对值的函数 { m=j; } } for(int j=1;j<=n+1;j++)//交换 { swap(a[i][j],a[m][j]); } if(a[i][i]==0)//最大值等于0则说明该列都为0,肯定无解 { printf("No Solution\n"); return 0; } for(int j=1;j<=n;j++)//每一项都减去一个数 { if(j!=i)//不是主元那一项 { double d=a[j][i]/a[i][i]; for(int k=i+1;k<=n+1;k++) { a[j][k]-=a[i][k]*d; } } } } for(int i=1;i<=n;i++)//最后的结果系数可能不为1,所以记得消去常数 { printf("%.2lf\n",a[i][n+1]/a[i][i]); } return 0; }
标签:ace wap 个数 交换 lin bsp 最大值 swap style
原文地址:https://www.cnblogs.com/cutemush/p/12276029.html