BZOJ 1013 球形空間產生器sphere

2021-09-24 14:10:54 字數 652 閱讀 8185

1.題目鏈結。題目大意:給出乙個n維球面上的n+1個點的座標,求解這個球心的座標。

2.首先,如果解存在,一定是唯一確定的。資料保證解存在,所以不用管無解的情況。設球心是(x1,x2,x3,x4...xn)。根據球的性質我們可以得到n+1個方程,然後逐項相減,就可以得到乙個n項的線性方程組。為了方便,就拿第乙個方程作為基準,每個方程都減去它。做出增廣矩陣後gauss校園完事。

#include#define esp 1e-6

using namespace std;

int n;

#pragma warning(disable:4996)

double f[100], a[100][100];

bool gauss()

now++;

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

if (fabs(a[i][n + 1]) > esp) return 0;

return 1;

}int main()

} gauss();

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

printf("%.3lf\n", a[n][n + 1]);

return 0;

}

bzoj1013 球形空間產生器

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

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維座標。每乙個實...