记录编号 415117 评测结果 AAAAAAAAAA
题目名称 [JSOI 2008]球形空间产生器sphere 最终得分 100
用户昵称 Gravataryymxw 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-06-15 16:49:44 内存使用 0.00 MiB
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<cstdio>
  4. #include<cmath>
  5. #define p 1e-8
  6. using namespace std;
  7. int n;
  8. double c[20][20],a[20][20];
  9. void gs()
  10. {
  11. for(int i=1;i<=n;++i)
  12. {
  13. int d=i;
  14. for(int j=i+1;j<=n;++j)
  15. if(fabs(a[j][i])>fabs(a[d][i]))
  16. d=j;
  17. for(int j=1;j<=n+1;++j)
  18. swap(a[d][j],a[i][j]);
  19. if(fabs(a[i][i])<p)
  20. continue;
  21. double tmp=a[i][i];
  22. for(int j=1;j<=n+1;++j)
  23. a[i][j]/=tmp;
  24. for(int j=1;j<=n;++j)
  25. if(i!=j)
  26. {
  27. double tmp=a[j][i];
  28. for(int k=1;k<=n+1;++k)
  29. a[j][k]-=a[i][k]*tmp;
  30. }
  31. }
  32. }
  33. int haha()
  34. {
  35. freopen("bzoj_1013.in","r",stdin);
  36. freopen("bzoj_1013.out","w",stdout);
  37. scanf("%d",&n);
  38. for(int i=1;i<=n+1;++i)
  39. for(int j=1;j<=n;++j)
  40. scanf("%lf",&c[i][j]);
  41. for(int i=1;i<=n;++i)
  42. for(int j=1;j<=n;++j)
  43. a[j][i]=2*(c[j+1][i]-c[j][i]);
  44. for(int i=1;i<=n;++i)
  45. for(int j=1;j<=n;++j)
  46. a[i][n+1]+=c[i+1][j]*c[i+1][j]-c[i][j]*c[i][j];
  47. gs();
  48. for(int i=1;i<=n;++i)
  49. printf("%.3lf ",a[i][n+1]);
  50. //system("pause");
  51. return 0;
  52. }
  53. int ying=haha();
  54. int main()
  55. {;}