(BZOJ1013)207 球形空間產生器

2021-09-26 09:35:31 字數 990 閱讀 3712

本作品採用知識共享署名-相同方式共享 4.0 國際許可協議進行許可。

有乙個球形空間產生器能夠在n維空間中產生乙個堅硬的球體。

現在,你被困在了這個n維球體中,你只知道球面上n+1個點的座標,你需要以最快的速度確定這個n維球體的球心座標,以便於摧毀這個球形空間產生器。

輸入格式

第一行是乙個整數n。

接下來的n+1行,每行有n個實數,表示球面上一點的n維座標。

每乙個實數精確到小數點後6位,且其絕對值都不超過20000。

輸出格式

有且只有一行,依次給出球心的n維座標(n個實數),兩個實數之間用乙個空格隔開。

每個實數精確到小數點後3位。

資料保證有解。

資料範圍

1≤n≤10

輸入樣例:

20.0 0.0

-1.0 1.0

1.0 0.0

輸出樣例:

0.500 1.500

分析:之前覺得高斯消元是乙個很高深的東西。 現在看來, 真的是超級暴力呀。 直接暴力模擬即可~~

明確一點,把圓心座標設出來。然後n+1個點到原心得距離都是相等的。

可以得到n+1個方程,我們在通過相鄰兩個方程相減可以得到n個方程。利用這n個方程進行高斯消元即可。

#include"stdio.h"

#include"string.h"

#include"algorithm"

using namespace std;

double a[20][20],c[20][20],b[20];

int n;

int main()

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

}for(int j = 1; j <= n;j ++)

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

printf("%0.3lf ",b[i] / c[i][i]);

}

Bzoj1013 Jsoi2008球形空間產生器

竟然會想去用隨機艹這道題。太年輕 實際上兩個點與座標列乙個方程,高斯消元解這n個方程組就好了。講道理隨機也可以過的吧?主要是不好找乙個單調的狀態來退火或者爬山 因為超出圓範圍外無限遠處到所有點距離也相等,但並不是圓心。大概可以先用到所有點距離和來爬一下山,最終點就肯定在圓裡,在小步小步的爬山,強制使...

bzoj1013 球形空間產生器

第一眼看到這題完全沒思路。搜了一下題解發現就是解乙個方程組。orz 然而我也不會啊233 所以說就學了一下高斯消元。據說高斯 約當消元法在oi中更常用 設球心為x x1,x2,x3,x4,xn 每乙個點的座標為ai ai1,ai2,ai3,ain 那麼根據空間距離公式可以得到 因為球心到球面上個點距...

BZOJ 1013 球形空間產生器sphere

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