100分,但WA 18 ,21,铅条(必关)
查看原帖
100分,但WA 18 ,21,铅条(必关)
1283976
sllhy7楼主2025/7/25 19:08
#include <bits/stdc++.h>
using namespace std;
int n,i,j,k,x,pd;
double a[110][110],ma,ps,jie[110];
bool vis[110],jl;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(i=1;i<=n;i++){
		for(j=1;j<=n+1;j++){
			cin>>a[i][j];
			a[i][j]=a[i][j]*1.0;
		}
	}
	for(i=1;i<=n;i++){
		ma=-100000000;
		for(j=1;j<=n;j++){
			if(vis[j]==0&&a[j][i]>ma){
				x=j;
				ma=a[j][i];
			}
		}
		if(ma==0.0){
			pd=1;
			break;
		}
		for(j=1;j<=n;j++){
			if(j!=x){
				ps=a[j][i]/ma;
				for(k=i;k<=n+1;k++){
					a[j][k]=a[j][k]-a[x][k]*ps;
				}
			}
		}
		for(k=i;k<=n+1;k++){
			a[x][k]=a[x][k]/ma;
		}		
		vis[x]=1;
	}
	if(pd==1){
		cout<<"No Solution";
	}
	else{
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				if(a[i][j]==1.0){
					jie[j]=a[i][n+1];
					break;
				}
			}
		}
		for(i=1;i<=n;i++){
			cout<<fixed<<setprecision(2)<<jie[i]<<"\n";
		}
	}
	return 0;
}
2025/7/25 19:08
加载中...