记录编号 177139 评测结果 AAAAAAAAAA
题目名称 [JSOI 2008]球形空间产生器sphere 最终得分 100
用户昵称 Gravatarlenibomb 是否通过 通过
代码语言 C++ 运行时间 0.038 s
提交时间 2015-08-11 07:18:04 内存使用 0.16 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<bitset>
  3. #include<iostream>
  4. #include<algorithm>
  5. using namespace std;
  6. int n;
  7. double map[12][12];
  8. double cs[12][12];
  9. int flag=0;
  10. int main()
  11. {
  12. freopen("bzoj_1013.in","r",stdin);
  13. freopen("bzoj_1013.out","w",stdout);
  14. scanf("%d",&n);
  15. for(int i=1;i<=n+1;i++){
  16. for(int j=1;j<=n;j++)
  17. scanf("%lf",&map[i][j]);
  18. }
  19. for(int i=1;i<=n;i++)
  20. {
  21. for(int j=1;j<=n;j++){
  22. cs[i][j]=2*(map[i][j]-map[i+1][j]);
  23. cs[i][n+1]+=map[i][j]*map[i][j]-map[i+1][j]*map[i+1][j];
  24. }
  25. }
  26. for(int i=1;i<=n;i++){
  27. flag=0;
  28. for(int j=i;j<=n;j++){
  29. if(cs[j][i]!=0){
  30. flag=j;
  31. break;
  32. }
  33. }
  34. swap(cs[i],cs[flag]);
  35. double tt=cs[i][i];
  36. for(int j=1;j<=n+1;j++)
  37. cs[i][j]/=tt;
  38. for(int j=1;j<=n;j++){
  39. if(i==j) continue;
  40. if(cs[j][i]==0) continue;
  41. tt=cs[j][i];
  42. for(int k=1;k<=n+1;k++){
  43. cs[j][k]-=cs[i][k]*tt;
  44. }
  45. }
  46. }
  47. for(int i=1;i<=n;i++){
  48. printf("%.3lf ",cs[i][n+1]);
  49. }
  50. }