高消板子玄关求条
  • 板块灌水区
  • 楼主Bicycle_zxc
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/7 11:02
  • 上次更新2024/6/7 15:50:51
查看原帖
高消板子玄关求条
710345
Bicycle_zxc楼主2024/6/7 11:02

rt,P2455 80pts.

#include<bits/stdc++.h>
#define eps 1e-9
using namespace std;
long long n;
double a[105][105];
long long zhuyuan;
double qwq;
bool nosolution,infinity;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		zhuyuan=i;
		for(int j=i+1;j<=n;j++){
			if(abs(a[j][i])>abs(a[zhuyuan][i])){
				zhuyuan=j;
			}
		}
		swap(a[i],a[zhuyuan]);
		if(abs(a[i][i])<eps){
			infinity=1;
			continue;
		}
		for(int j=1;j<=n;j++){
			if(j!=i){
				qwq=a[j][i]/a[i][i];
				for(int k=i+1;k<=n+1;k++){
					a[j][k]-=a[i][k]*qwq;
				}
			} 
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(abs(a[i][j]>eps)){
				nosolution=1;
			}
		}
		if(!nosolution&&abs(a[i][n+1])>eps){
			cout<<-1<<endl;
			return 0;
		}
	}
	if(infinity){
		cout<<0<<endl;
		return 0;
	}
	for(int i=1;i<=n;i++){
		cout<<"x"<<i<<"=";
		cout<<fixed<<setprecision(2)<<a[i][n+1]/a[i][i]<<endl;
	}
}
/*
3
0 1 1 2
0 0 3 9
0 0 5 15
*/
2024/6/7 11:02
加载中...