关于RE的一个问题
查看原帖
关于RE的一个问题
85994
嘉年华楼主2021/10/9 16:29

下面的代码提交不开O2会RE,开了就不会,有dalao知道是为什么吗?

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define maxn 305
double x[maxn][maxn];
int n;
signed main()
{
	read_(n);
	for(int i(1);i<=n;++i)
		for(int j(1);j<=n+1;++j)
			cin>>(x[i][j]);
	int pl;
	double c;
	for(int i(1);i<=n;pl=++i)
	{
		while(x[pl][i]==0.0&&pl<=n) ++pl;
		if(pl==n+1) cout<<"No Solution",exit(0);
		if(pl!=i) for(int j(i);j<=n+1;++j) swap(x[i][j],x[pl][j]);
		c=x[i][i];
		for(int j(i);j<=n+1;++j) x[i][j]/=c;
		for(int j(i+1);j<=n;++j)
			if(x[j][i]!=0.0)
				for(int k(n+1);k>=i;--k)
					x[j][k]-=x[j][i]*x[i][k];
	}
	for(int i(n);i>1;--i)
		for(int j(i-1);j;--j)
			if(x[j][i]!=0.0)
				x[j][n+1]-=x[i][n+1]*x[j][i],x[j][i]=0.0;
	for(int i(1);i<=n;++i)
		printf("%.2f\n",x[i][n+1]);
	
	return 0;
}





2021/10/9 16:29
加载中...