【模板】高斯消元法


link

模板题目。

本来以为高斯消元是一种什么特别高深特别难懂的算法,结果就是一个普普通通的加减消元。有点故弄玄虚的感觉,真是无论什么东西都要搞一个高大上的名字才行吗。

写法上也很简单。枚举每一个未知数的系数,考虑把它变成1,同时把其它行的相应位置变成0即可。实现上有些细节,不多说。

另外可以想到若某一行前面N个数均为0,要么是无解,要么是无数解,在本题中都要输出无解。

#include
//#define zczc
const int N=105;
const double eps=1e-6;
inline void read(int &wh){
    wh=0;int f=1;char w=getchar();
    while(w<'0'||w>'9'){if(w=='-')f=-1;w=getchar();}
    while(w<='9'&&w>='0'){wh=wh*10+w-'0';w=getchar();}
    wh*=f;return;
}
inline double abs(double wh){return wh<0?-wh:wh;}
inline double swap(double s1,double s2){double s3=s1;s1=s2;s2=s3;}

int m;double a[N][N];


signed main(){
	
	#ifdef zczc
	freopen("in.txt","r",stdin);
	#endif
	
	read(m);
	for(int i=0;i

相关