#18#21WA求调
查看原帖
#18#21WA求调
1264592
IlIlIlIlIl楼主2024/11/18 16:48

我的记录

好像看懂为什么WA了,但是不会写

#include<bits/stdc++.h>
using namespace std;
const double eps=1e-7;
int n,maxid;
double gus[110][110],maxx;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1;j++){
			cin>>gus[i][j];
		}
	}	
	for(int i=1;i<=n;i++){
		maxid=i;
		maxx=gus[i][i];
		for(int j=i;j<=n;j++){
			if(fabs(gus[j][i])>maxx){
				maxid=j;
				maxx=fabs(gus[j][i]);
			}
		}
		if(maxid!=i){
			for(int j=1;j<=n+1;j++){
				swap(gus[i][j],gus[maxid][j]);
			}
		}
	}
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1;j++){
			cout<<gus[i][j]<<" ";
		}
		cout<<"\n";
	}*/
	for(int i=1;i<=n;i++){
		if(fabs(gus[i][i])<eps){
			cout<<"No Solution\n";
			return 0;
		}
		for(int j=n+1;j>=i;j--){
			gus[i][j]/=gus[i][i];
		}
		for(int j=1;j<=n;j++){
			if(i!=j){
				for(int k=n+1;k>0;k--){
					gus[j][k]-=gus[j][i]*gus[i][k];
				}
			}
		}
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1;j++){
			cout<<fixed<<setprecision(2)<<gus[i][j]<<"\t";
		}
		cout<<"\n";
	}
	cout<<"\n";*/
	}
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1;j++){
			cout<<fixed<<setprecision(2)<<gus[i][j]<<"\t";
		}
		cout<<"\n";
	}
	cout<<"\n";*/
	for(int i=1;i<=n;i++){
		cout<<fixed<<setprecision(2)<<gus[i][n+1]<<"\n";
	}
	return 0;
}

附:

#18.in
3
1 1 3 4
2 2 3 1
2 1 1 1
#18.out
1.67
-4.67
2.33
2024/11/18 16:48
加载中...