bzoj1013 球形空間產生器

2022-03-25 23:30:59 字數 870 閱讀 7245

第一眼看到這題完全沒思路。。搜了一下題解發現就是解乙個方程組。。。orz(然而我也不會啊233)

所以說就學了一下高斯消元。。(據說高斯-約當消元法在oi中更常用)

設球心為x=[x1,x2,x3,x4,...,xn],每乙個點的座標為ai=[ai1,ai2,ai3,...,ain]

那麼根據空間距離公式可以得到(因為球心到球面上個點距離相等麼。。由於等式兩邊相等,所以可以直接把根號給拆掉。。)

(a11-x1)²+(a12-x2)²+(a13-x3)²+...+(a1n-xn)²=(ai1-x1)²+(ai2-x2)²+(ai3-x3)²+...+(ain-xn)²      (1那麼化簡一下後套模板就行了。

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 

8 #include 9 #include 10 #include 11

using

namespace

std;

1213

double x[50],y,f[50][50],s[50

];14

intn;

15int

main()

24}

25for(int i=1;i<=n;i++)35}

36for(int i=n;i>=1;i--)

41for(int i=1;i<=n-1;i++)printf("

%.3f

",f[i][n+1

]);42 printf("

%.3lf\n

",f[n][n+1

]);43 }

view code

BZOJ 1013 球形空間產生器sphere

1.題目鏈結。題目大意 給出乙個n維球面上的n 1個點的座標,求解這個球心的座標。2.首先,如果解存在,一定是唯一確定的。資料保證解存在,所以不用管無解的情況。設球心是 x1,x2,x3,x4.xn 根據球的性質我們可以得到n 1個方程,然後逐項相減,就可以得到乙個n項的線性方程組。為了方便,就拿第...

BZOJ1013 球形空間產生器(高斯消元)

有乙個球形空間產生器能夠在n維空間中產生乙個堅硬的球體。現在,你被困在了這個n維球體中,你只知道球 面上n 1個點的座標,你需要以最快的速度確定這個n維球體的球心座標,以便於摧毀這個球形空間產生器。第一行是乙個整數n 1 n 10 接下來的n 1行,每行有n個實數,表示球面上一點的n維座標。每乙個實...

BZOJ1013 球形空間產生器(高斯消元)

有乙個球形空間產生器能夠在n維空間中產生乙個堅硬的球體。現在,你被困在了這個n維球體中,你只知道球 面上n 1個點的座標,你需要以最快的速度確定這個n維球體的球心座標,以便於摧毀這個球形空間產生器。第一行是乙個整數n 1 n 10 接下來的n 1行,每行有n個實數,表示球面上一點的n維座標。每乙個實...