【BZOJ 1013】 [JSOI2008]球形空间产生器sphere
2017-10-04 18:45
162 查看
【题目链接】:http://www.lydsy.com/JudgeOnline/problem.php?id=1013
【题意】
【题解】
/* 考虑圆上的第一个坐标(a1,a2...an); 设球心的坐标为(x1,x2..xn) 则有 (a1-x1)^2+(a2-x2)^2+...+(an-xn)^2==r^2 ····① 再找圆上的第二个坐标(b1,b2..bn); (b1-x1)^2+(b2-x2)^2+...+(bn-xn)^2==r^2 ····② 联立①②两式可得 2*(a1-b1)*x1+2*(a2-b2)*x2+...+2*(an-bn)*xn=a1^2-b1^2+a2^-b2^2+...+an^-bn^2 你可以再找n-1个式子; 就能组合成n个等式了; 解非齐次线性方程组就可以了; 用到了高斯消元; 这里的高斯消元最后会变成最简的阶梯行列式; ->不知道是不是叫这个东西,总之主对角线上的元素都为1,其他地方都为0; */
【完整代码】
#include <bits/stdc++.h> using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) #define mp make_pair #define pb push_back #define fi first #define se second #define rei(x) scanf("%d",&x) #define rel(x) scanf("%lld",&x) typedef pair<int, int> pii; typedef pair<LL, LL> pll; const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 }; const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 }; const double pi = acos(-1.0); const int N = 110; int n; double f ,a ; double sqr(double x) { return x*x; } void gause() { rep1(j, 1, n) { int po = -1; rep1(i,j,n) if (fabs(a[i][j]) > 1e-6) { po = j; break; } if (po != j) { rep1(i, 1, n + 1) swap(a[po][i], a[j][i]); } //a[j][j..n] double t = a[j][j]; rep1(i, 1, n + 1) a[j][i] /= t; rep1(i,1,n) if (i != j) { double tt = a[i][j]; rep1(k, 1, n + 1) a[i][k] -= tt*a[j][k]; } } } int main() { //freopen("F:\\rush.txt", "r", stdin); rei(n); rep1(i, 1, n) cin >> f[i]; rep1(i, 1, n) rep1(j, 1, n) { double x; cin >> x; a[i][j] = 2 * (f[j] - x); a[i][n + 1] += sqr(f[j]) - sqr(x); } gause(); rep1(i, 1, n - 1) printf("%.3f ", a[i][n + 1]); printf("%.3f\n", a [n + 1]); return 0; }
相关文章推荐
- 【bzoj1013】[JSOI2008]球形空间产生器sphere
- BZOJ1013 [JSOI2008]球形空间产生器sphere
- 【BZOJ】1013: [JSOI2008]球形空间产生器sphere(高斯消元)
- BZOJ 1013 [JSOI2008]球形空间产生器sphere (高斯消元)
- [BZOJ1013][JSOI2008]球形空间产生器sphere(高斯消元)
- 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere
- 【高斯消元】BZOJ1013 [JSOI2008]球形空间产生器sphere
- BZOJ1013 [JSOI2008]球形空间产生器sphere
- bzoj 1013: [JSOI2008]球形空间产生器sphere(高斯消元)
- 【BZOJ1013 || JSOI2008】球形空间产生器sphere
- bzoj 1013: [JSOI2008]球形空间产生器sphere 解题报告
- BZOJ 1013: [JSOI2008]球形空间产生器sphere [高斯消元]
- [BZOJ1013][JSOI2008]球形空间产生器sphere
- bzoj1013: [JSOI2008]球形空间产生器sphere
- [高斯消元] BZOJ1013: [JSOI2008]球形空间产生器sphere
- Bzoj1013 [JSOI2008]球形空间产生器sphere
- bzoj1013 [JSOI2008] 球形空间产生器sphere 高斯消元
- BZOJ 1013: [JSOI2008]球形空间产生器sphere(高斯消元)
- BZOJ 1013 [JSOI2008] 球形空间产生器sphere
- bzoj 1013: [JSOI2008]球形空间产生器sphere 高斯消元