整数高斯消元模板
来源:互联网 发布:淘宝盗用品牌怎么处理 编辑:程序博客网 时间:2024/05/29 12:58
#include<cstdio>#include<algorithm>#include<cstdlib>using namespace std;#define MAXN 400int a[MAXN+10][MAXN+10],x[MAXN+10],n,m,row;template<class T>void Read(T &x){ char c; bool f=0; while(c=getchar(),c!=EOF){ if(c=='-') f=1; if(c>='0'&&c<='9'){ x=c-'0'; while(c=getchar(),c>='0'&&c<='9') x=x*10+c-'0'; ungetc(c,stdin); if(f) x=-x; return; } }}void read(){ Read(n),Read(m); int i,j; for(i=1;i<=n;i++) for(j=1;j<=m+1;j++) Read(a[i][j]);}int gcd(int a,int b){ int t; while(b){ t=a%b; a=b; b=t; } return a;}void gaussian_elimination(){ int col,i,mxr,j,lcm; for(row=col=1;row<=n&&col<=m;row++,col++){ mxr=row; for(i=row+1;i<=n;i++) if(abs(a[i][col])>abs(a[mxr][col])) mxr=i; if(mxr!=row) swap(a[mxr],a[row]); if(!a[row][col]){ row--; continue; } for(i=row+1;i<=n;i++) if(a[i][col]){ int t1=lcm/a[i][col],t2=lcm/a[row][col]; lcm=a[row][col]/gcd(a[row][col],a[i][col])*a[i][col]; for(j=m+1;j;j--) a[i][j]=a[i][j]*t1-a[row][j]*t2; } } row--;}void find_ans(){ if(row==m){ int i,j; for(i=n;i;i--){ for(j=i+1;j<=m;j++) a[i][m+1]-=a[i][j]*x[j]; x[i]=a[i][m+1]/a[i][i]; printf("x%d=%d\n",i,x[i]); } }}int main(){ read(); gaussian_elimination(); find_ans();}
0 0
- 【高斯消元】整数高斯消元模板
- 整数高斯消元模板
- 高斯消元整数消元模板
- 高斯消元模板——整数参数型
- 大整数模板
- 超大整数加法模板
- 超大整数减法模板
- Java 大整数 模板
- 高精度整数模板
- 高精度整数模板(转)
- 大整数模板
- 大整数模板
- 整数划分模板
- 大整数减法模板
- java大整数模板
- 大整数类 模板
- 大整数模板
- 整数快速幂【模板】
- QT5+OpenCV环境搭建及入门相关
- 比CMD更强大的命令行WMIC
- Android targetSdkVersion 原理 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- Xilinx IP核使用(一)--FIFO
- 电子书:《Docker入门实战》
- 整数高斯消元模板
- ThinkPad R400 全系列官方恢复盘及官方分区工具
- 【高斯消元】整数高斯消元模板
- C++还能重新辉煌吗?C++复杂性的思考
- android-Activity Intent.setFlags()与launchMode
- nyoj 954
- ArcGIS教程:“表面体积”的工作原理
- python: 基于unittest 的动态加载和自动化测试探讨 (二)
- 渲梦工厂(3dmax插件)下载 v2.0.8中文版