题意:

  告诉你一个K维球体球面上的K+1个点问球心坐标.

sol:

  乍一看还以为是K维的二分答案然后判断距离...真是傻逼了...你看乱七八糟的题目做多了然后就会忘记最有用的基本计算...

  我们可以看到,假设圆心O,根据他告诉我们的公式我们可以得到给出任意两个点和圆心的一个方程,这个方程有k个未知数,那么我们随意构造K个方程然后跑一跑高斯消元.

  机械工业的线代还是挺清楚易懂的...每次枚举到一个主元行就把下面每一个都消了...恩...比较直观...

  因为最后一个换行还PE了一发...有点醉= =

CODE:

  

  1. /*==========================================================================
  2. # Last modified: 2016-03-03 15:29
  3. # Filename: 1013.cpp
  4. # Description:
  5. ==========================================================================*/
  6. #define me AcrossTheSky
  7. #include <cstdio>
  8. #include <cmath>
  9. #include <ctime>
  10. #include <string>
  11. #include <cstring>
  12. #include <cstdlib>
  13. #include <iostream>
  14. #include <algorithm>
  15.  
  16. #include <set>
  17. #include <map>
  18. #include <stack>
  19. #include <queue>
  20. #include <vector>
  21.  
  22. #define lowbit(x) (x)&(-x)
  23. #define FOR(i,a,b) for((i)=(a);(i)<=(b);(i)++)
  24. #define FORP(i,a,b) for(int i=(a);i<=(b);i++)
  25. #define FORM(i,a,b) for(int i=(a);i>=(b);i--)
  26. #define ls(a,b) (((a)+(b)) << 1)
  27. #define rs(a,b) (((a)+(b)) >> 1)
  28. #define getlc(a) ch[(a)][0]
  29. #define getrc(a) ch[(a)][1]
  30.  
  31. #define delta 1e-6
  32. #define maxn 100000
  33. #define maxm 100000
  34. #define pi 3.1415926535898
  35. #define _e 2.718281828459
  36. #define INF 1070000000
  37. using namespace std;
  38. typedef long long ll;
  39. typedef unsigned long long ull;
  40.  
  41. template<class T> inline
  42. void read(T& num) {
  43. bool start=false,neg=false;
  44. char c;
  45. num=0;
  46. while((c=getchar())!=EOF) {
  47. if(c=='-') start=neg=true;
  48. else if(c>='0' && c<='9') {
  49. start=true;
  50. num=num*10+c-'0';
  51. } else if(start) break;
  52. }
  53. if(neg) num=-num;
  54. }
  55. /*==================split line==================*/
  56. double M[20][20],p[20][20],ans[20];
  57. int n;
  58. int judge(double x,double t){
  59. if (fabs(x-t)<=delta) return 0;
  60. else if (x>t) return 1;
  61. return -1;
  62. }
  63. void Gauss_elimination(){
  64. double t=1.0;
  65. FORP(i,1,n){
  66. if (judge(M[i][i],0)!=0) t=M[i][i];
  67. else continue;
  68. FORP(j,i,n+1) M[i][j]/=t;
  69. FORP(j,i+1,n){
  70. t=M[j][i];
  71. FORP(k,i,n+1) M[j][k]-=t*M[i][k];
  72. }
  73. //check();
  74. }
  75. FORM(i,n,1){
  76. FORP(j,i+1,n) M[i][n+1]-=M[i][j]*ans[j];
  77. ans[i]=M[i][n+1];
  78. }
  79. }
  80. int main(){
  81. read(n);
  82. FORP(i,1,n+1)
  83. FORP(j,1,n) {
  84. scanf("%lf",&p[i][j]);
  85. }
  86. FORP(i,2,n+1){
  87. FORP(j,1,n) {
  88. M[i-1][j]=p[i][j]-p[1][j];
  89. M[i-1][n+1]+=((p[i][j]*p[i][j]-p[1][j]*p[1][j])/2.0);
  90. }
  91. }
  92. Gauss_elimination();
  93. FORP(i,1,n-1) printf("%.3lf ",ans[i]); printf("%.3lf",ans[n]);
  94. }

BZOJ 1013 & 高斯消元的更多相关文章

  1. BZOJ 3143 高斯消元+贪心....

    思路: 先算一下每条边经过次数的期望 转化为每个点经过次数的期望 边的期望=端点的期望/度数 统计一下度数 然后高斯消元 贪心附边权--. //By SiriusRen #include <cm ...

  2. BZOJ 3503 高斯消元

    思路: 高斯消元就好啦 注意每个格子最多只能和4个相邻 所以是 n*m*n*m*5 的 并不会TLE //By SiriusRen #include <cstdio> #include & ...

  3. BZOJ 4004 高斯消元

    思路: 排个序 消元 完事~ 但是! 坑爹精度毁我人生 我hhhh他一脸 红红火火恍恍惚惚 //By SiriusRen #include <cmath> #include <cst ...

  4. bzoj 2337 高斯消元+概率DP

    题目大意: 每条路径上有一个距离值,从1走到N可以得到一个所有经过路径的异或和,求这个异或和的数学期望 这道题直接去求数学期望的DP会导致很难列出多元方程组 我们可以考虑每一个二进制位从1走到N的平均 ...

  5. BZOJ 2844 高斯消元 线性基

    思路: //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using ...

  6. BZOJ 4269 高斯消元求线性基

    思路: 最大: 所有线性基异或一下 次大: 最大的异或一下最小的线性基 搞定~ //By SiriusRen #include <cstdio> #include <algorith ...

  7. bzoj 2844: albus就是要第一个出场 高斯消元

    LINK 题意:看题目不如看样例解释.给出有n个数的集合,对这些子集中的数求异或,升序统计所有子集得到的数(重复会被计入),询问一个数x,问这个数出现的第一个位置 思路:在这里要求一个所有可能出现的异 ...

  8. [BZOJ 1013][JSOI 2008] 球形空间产生器sphere 题解(高斯消元)

    [BZOJ 1013][JSOI 2008] 球形空间产生器sphere Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面 ...

  9. BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Judg ...

随机推荐

  1. MVC - 11(上).DTO

    1.重要:javaScriptSerializer 无法识别被序列化的对象里各种属性是否存在  循环依赖 (System,Web.Script.Serialization.JavaScriptSeri ...

  2. JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)

    1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ...

  3. HTML5学习之视频与音频(三)

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. oracle的oci和thin区别(数据源)

    我是今天看到tomcat数据源的配置时,想起来这个问题,刚开始还不晓得thin是什么东西! database.url=jdbc:oracle:thin:angel/oracle@192.168.55. ...

  5. poj 1003:Hangover(水题,数学模拟)

    Hangover Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 99450   Accepted: 48213 Descri ...

  6. PHP检测终端设备是平板、手机还是电脑

    <?php $ua = $_SERVER['HTTP_USER_AGENT']; function userAgent($ua){ $iphone = strstr(strtolower($ua ...

  7. WebRTC之带宽控制部分学习(1) ------基本demo的介绍

    转自:http://blog.csdn.net/u013160228/article/details/46392037 WebRTC的代码真是非常之大啊,下载以及编译了我好几天才搞完..... 可以看 ...

  8. C++Primer快速浏览笔记-类型转换

    bool b = 42; // _b is true_ int i = b; // _i has value 1_ i = 3.14; // _i has value 3_ double pi = i ...

  9. 在Salesforce中通过 Debug Log 方式 跟踪逻辑流程

    在Salesforce中通过 Debug Log方式 跟踪逻辑流程 具体位置如下所示: Setup ---> Logs ---> Debug Logs ---> Monitored ...

  10. 编译原理实习(应用预测分析法LL(1)实现语法分析)

    #include<iostream> #include<fstream> #include<iomanip> #include<cstdio> #inc ...