BZOJ1013(JSOI2008)[球形空间产生器sphere]--高斯消元
2017-09-21 21:29
309 查看
【题目链接】
bzoj1013
【解题报告】
设球心坐标为(O1,O2,…,On)。
第i个点坐标为(X(i,1),X(i,2),…,X(i,n))
由题意得
∑(X2(1,i)−2∗X(1,i)∗Oi+O2i)=∑(X2(2,i)−2∗X(2,i)∗Oi+O2i)=...=∑(X2(n+1,i)−2∗X(n+1,i)∗Oi+O2i)
所以∑(2∗(X(2,i)−X(1,i))∗Oi)=∑(X2(2,i)−X2(1,i))
∑(2∗(X(3,i)−X(1,i))∗Oi)=∑(X2(3,i)−X2(1,i))
…
∑(2∗(X(n+1,i)−X(1,i))∗Oi)=∑(X2(n+1,i)−X2(1,i))
就可以用高斯消元解线性方程了
bzoj1013
【解题报告】
设球心坐标为(O1,O2,…,On)。
第i个点坐标为(X(i,1),X(i,2),…,X(i,n))
由题意得
∑(X2(1,i)−2∗X(1,i)∗Oi+O2i)=∑(X2(2,i)−2∗X(2,i)∗Oi+O2i)=...=∑(X2(n+1,i)−2∗X(n+1,i)∗Oi+O2i)
所以∑(2∗(X(2,i)−X(1,i))∗Oi)=∑(X2(2,i)−X2(1,i))
∑(2∗(X(3,i)−X(1,i))∗Oi)=∑(X2(3,i)−X2(1,i))
…
∑(2∗(X(n+1,i)−X(1,i))∗Oi)=∑(X2(n+1,i)−X2(1,i))
就可以用高斯消元解线性方程了
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int maxn=15; const double P=1e-10; int n; double a[maxn][maxn],M[maxn][maxn],ans[maxn]; inline int Read() { int res=0; char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while (ch>='0'&&ch<='9') res=res*10+ch-48,ch=getchar(); return res; } bool Fc(double x) {if (x<=P&&x>=-P) return 1; return 0;} int main() { freopen("1013.in","r",stdin); freopen("1013.out","w",stdout); n=Read(); for (int i=1; i<=n+1; i++) for (int j=1; j<=n; j++) scanf("%lf",&a[i][j]); for (int i=2; i<=n+1; i++) for (int j=1; j<=n; j++) M[i-1][j]=(a[i][j]-a[1][j])*2,M[i-1][n+1]+=a[i][j]*a[i][j]-a[1][j]*a[1][j]; for (int i=1; i<=n; i++) { int where; for (int j=i; j<=n; j++) if (!Fc(M[j][i])) {where=j; break;} swap(M[where],M[i]); for (int j=i+1; j<=n; j++) {double num=M[j][i]/M[i][i]; for (int k=i; k<=n+1; k++) M[j][k]-=num*M[i][k];} } for (int i=n; i; i--) { ans[i]=M[i][n+1]; for (int j=i+1; j<=n; j++) ans[i]-=M[i][j]*ans[j]; ans[i]/=M[i][i]; } for (int i=1; i<n; i++) printf("%.3lf ",ans[i]); printf("%.3lf\n",ans ); return 0; }
相关文章推荐
- 【高斯消元】BZOJ1013(JSOI2008)[球形空间产生器sphere]题解
- BZOJ 1013 [JSOI2008]球形空间产生器sphere (高斯消元)
- BZOJ 1013 球形空间产生器sphere 高斯消元
- BZOJ 1013: [JSOI2008]球形空间产生器sphere(高斯消元)
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- bzoj1013: [JSOI2008]球形空间产生器sphere(高斯消元)
- bzoj 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- BZOJ 1013 [JSOI2008]球形空间产生器sphere 【高斯消元】
- 【BZOJ1013】[JSOI2008]球形空间产生器sphere【高斯消元】
- bzoj1013球形空间产生器sphere 高斯消元(有系统差的写法
- 【高斯消元】【JSOI 2008】【bzoj 1013】球形空间产生器sphere
- BZOJ1013:[JSOI2008]球形空间产生器sphere (高斯消元)
- [bzoj 1013] [JSOI2008]球形空间产生器sphere:高斯消元
- [bzoj1013](JSOI2008)球形空间产生器sphere(高斯消元)
- 【高斯消元】BZOJ1013-[JSOI2008]球形空间产生器sphere
- [JSOI2008] [BZOJ1013] 球形空间产生器sphere - 高斯消元
- BZOJ 1013 [JSOI2008]球形空间产生器sphere | 高斯消元
- [BZOJ1013][JSOI2008]球形空间产生器sphere(高斯消元)
- 【高斯消元】BZOJ1013 [JSOI2008]球形空间产生器sphere
- [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)