【高斯消元】CDOJ1783 曜酱的线性代数课堂(一)
2017-10-05 01:29
357 查看
高斯消元求逆矩阵板子。
#include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; const double EPS=0.00000001; #define N 105 int n; double B [N*2],A [N*2],C ; bool guass_jordan() { memcpy(B,A,sizeof(A)); for(int i=1;i<=n;++i){ for(int j=n+1;j<=n*2;++j){ if(i==j-n){ B[i][j]=1.0; } else{ B[i][j]=0.0; } } } for(int i=1;i<=n;++i){ int pivot=i; for(int j=i+1;j<=n;++j){ if(fabs(B[j][i])>fabs(B[pivot][i])){ pivot=j; } } swap(B[i],B[pivot]); if(fabs(B[i][i])<EPS){ return 0; } for(int j=i+1;j<=n*2;++j){ B[i][j]/=B[i][i]; } for(int j=1;j<=n;++j){ if(i!=j){ for(int k=i+1;k<=n*2;++k){ B[j][k]-=B[j][i]*B[i][k]; } } } } for(int i=1;i<=n;++i){ for(int j=n+1;j<=n*2;++j){ C[i][j-n]=B[i][j]; } } } int T; int main() { // freopen("nijuzhen2.in","r",stdin); // freopen("nijuzhen2.out","w",stdout); char t[10]; while(scanf("%d",&n)!=EOF){ memset(A,0,sizeof(A)); for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ scanf("%lf",&A[i][j]); } } if(guass_jordan()){ for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ sprintf(t,"%.3f",C[i][j]); if(t[0]=='-' && t[1]=='0' && t[2]=='.' && t[3]=='0' && t[4]=='0' && t[5]=='0'){ printf("0.000%c",j==n ? '\n' : ' '); } else{ printf("%.3f%c",C[i][j],j==n ? '\n' : ' '); } } } } else{ puts("NO"); } } return 0; }
相关文章推荐
- 【高斯消元】CDOJ1784 曜酱的线性代数课堂(二)
- 【高斯消元】CDOJ1785 曜酱的线性代数课堂(三)
- 【总结】线性基/(高斯消元 线性代数)
- 线性代数(高斯消元):JSOI2008 球形空间产生器sphere
- CDOJ 1330 柱爷与远古法阵【高斯消元,卡精度】
- CDOJ 1330 柱爷与远古法阵 概率DP,高斯消元,卡精度,极度恶心
- CDOJ 1330 柱爷与远古法阵(高斯消元)
- 关灯游戏 Lights out (三)(线性代数+高斯消元,搜索全部解)
- 【cdoj 1330】柱爷与远古法阵 高斯消元
- 【CF736D】Permutations 线性代数+高斯消元
- [高斯消元 线性基 二进制拆分] HDU 3949 XOR
- hihocoder #1195 : 高斯消元·一
- HDU 5755 Gambler Bo(高斯消元裸题)——2016 Multi-University Training Contest 3
- hdu5755Gambler Bo+高斯消元
- 高斯消元模板
- 高斯消元
- 高斯-若尔当消元法(线性代数)
- hdu4418(概率dp + 高斯消元)
- poj1681 Painter's Problem 高斯消元
- HDU 5833 Zhu and 772002 (高斯消元)