【高斯消元】bzoj1013 [JSOI2008]球形空间产生器sphere
2015-03-17 10:01
519 查看
求圆神饶恕~>_<
根据半径相等的关系建立n+1个二次方程,
然后每个和前一个相减消去二次项,get n个线性方程。
根据半径相等的关系建立n+1个二次方程,
然后每个和前一个相减消去二次项,get n个线性方程。
#include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; #define N 11 int n; double B [N+1],A [N+1],x ,b ,pl[N+1] ; double sqr(double x){return x*x;} void guass_jordan() { memcpy(B,A,sizeof(A)); for(int i=1;i<=n;++i) B[i][n+1]=b[i]; for(int i=1;i<=n;++i)//枚举:正在消除第i个未知数,之后第i个方程废掉,矩阵行、列-1 { int pivot=i; for(int j=i+1;j<=n;++j)//枚举j:把正在处理的未知数的系数的绝对值最大的方程换到第i行 if(fabs(B[j][i])>fabs(B[pivot][i])) pivot=j; swap(B[i],B[pivot]); //if(fabs(B[i][i])<EPS) //若所有(最大)的该未知数系数为0,说明少一个未知数,有无穷多解 for(int j=i+1;j<=n+1;++j) B[i][j]/=B[i][i]; for(int j=1;j<=n;++j) if(i!=j)//枚举所有的方程,从第j个方程中消去第i个未知数 for(int k=i+1;k<=n+1;++k)//依次把第j个方程中的第k个未知数减去应减的数值 B[j][k]-=B[j][i]*B[i][k]; } for(int i=1;i<=n;++i) x[i]=B[i][n+1]; } int main() { scanf("%d",&n); for(int i=1;i<=n+1;++i) { for(int j=1;j<=n;++j) scanf("%lf",&pl[i][j]); if(i>1) for(int j=1;j<=n;++j) { b[i-1]+=sqr(pl[i-1][j])-sqr(pl[i][j]); A[i-1][j]=2.0*pl[i-1][j]-2.0*pl[i][j]; } } guass_jordan(); for(int i=1;i<n;++i) printf("%.3f ",x[i]); printf("%.3f\n",x ); return 0; }
相关文章推荐
- 【高斯消元】BZOJ 1013: [JSOI2008]球形空间产生器sphere
- 【BZOJ1013】[JSOI2008]球形空间产生器sphere【高斯消元】
- 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere|高斯消元
- bzoj 1013: [JSOI2008]球形空间产生器sphere(高斯消元)
- [BZOJ1013][JSOI2008]球形空间产生器sphere-高斯消元
- 【高斯消元】BZOJ1013-[JSOI2008]球形空间产生器sphere
- BZOJ 1013 [JSOI2008]球形空间产生器sphere | 高斯消元
- [bzoj 1013] [JSOI2008]球形空间产生器sphere:高斯消元
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- 【高斯消元】BZOJ 1013: [JSOI2008]球形空间产生器sphere
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- 【高斯消元】【JSOI 2008】【bzoj 1013】球形空间产生器sphere
- BZOJ 1013 [JSOI2008]球形空间产生器sphere 【高斯消元】
- BZOJ 1013: [JSOI2008]球形空间产生器sphere( 高斯消元 )
- BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- BZOJ 1013: [JSOI2008]球形空间产生器sphere [高斯消元]
- BZOJ1013:[JSOI2008]球形空间产生器sphere (高斯消元)
- [高斯消元]BZOJ 1013 [JSOI2008]——球形空间产生器sphere
- [BZOJ1013][JSOI2008]球形空间产生器sphere(高斯消元)
- BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元