求助搞死小园模板
  • 板块学术版
  • 楼主qwq2519
  • 当前回复10
  • 已保存回复10
  • 发布时间2021/9/14 14:37
  • 上次更新2023/11/4 06:49:26
查看原帖
求助搞死小园模板
141335
qwq2519楼主2021/9/14 14:37
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define rep(i,j,k) for(register int i(j);i<=k;++i)
#define drp(i,j,k) for(register int i(j);i>=k;--i)
#define bug cout<<"~~~~~~~~~~~~~"<<'\n';
#define bugout(x) cout<<x<<'\n';
typedef long long lxl;
template<typename T>
inline T  max(T &a, T &b) {
	return a > b ? a : b;
}
template<typename T>
inline T  min(T &a, T &b) {
	return a < b ? a : b;
}
const int N = 1e3 + 79;
double B[N][N];
int n;
const double eps = 1e-8;
int main() {
	using std::cin;
	using std::cout;
	cin >> n;
	rep(i, 1, n) {
		rep(j, 1, n + 1) {
			cin >> B[i][j];
		}
	}

	rep(i, 1, n) {
		int pos = i;
		rep(j, i, n) {
			if(fabs(B[j][i] - B[pos][i]) <= eps) pos = j;
		}


		rep(j, 1, n + 1) {

			double t = B[i][j];
			B[i][j] = B[pos][j];
			B[pos][j] = t;

//			std::swap(B[i][j], B[pos][j]);
		}

		if(fabs(B[i][i]) <= eps) {
			puts("No Solution\n");
			return 0;
		}

		rep(j, i + 1, n + 1) B[i][j] /= B[i][i];

		rep(j, 1, n) {
			if(i != j)
				rep(k, i + 1, n + 1) B[j][k] -= B[j][i] * B[i][k];
		}
	}
	rep(i, 1, n) printf("%.2lf\n", B[i][n]);
	return 0;
}

过不了样例。。

2021/9/14 14:37
加载中...