思路:高斯消元
把所有已知點列出 可以得到n+1個方程
形如$ (a_1-a)^2 +(b_1-b)^2 + ... +(n_1-n)^2 = dis $
$ (a_2-a)^2 +(b_2-b)^2 + ... +(n_2-n)^2 = dis $
$ (a_3-a)^2 +(b_3-b)^2 + ... +(n_3-n)^2 = dis $
其中 dis是乙個定值 即每個點到球心的距離,a、b、c...為所求座標
把這n+1個方程每相鄰的兩個方程相減 移項 可得到n個一次方程
形如$ 2 (a_2-a_1) a + 2 (b_2-b_1) b + ... + 2 (n_2-n_1) n = (a_2)^2 - (a_1)^2 + (b_2)^2 - (b_1)^2 + ... + (n_2)^2 - (n_1)^2 $
$ 2 (a_3-a_2) a + 2 (b_3-b_2) b + ... + 2 (n_3-n_2) n = (a_3)^2 - (a_2)^2 + (b_3)^2 - (b_2)^2 + ... + (n_3)^2 - (n_2)^2 $
此時,未知數都在等式左邊,等式右邊為常量(通過輸入的值計算),高斯消元解方程組即可
題目中確保方程有唯一解 不用判無解
#include using namespace std;
const int maxn = 20;
const double eps = 1e-8;
typedef double matrix[maxn][maxn];
double tmp[maxn][maxn];
matrix a;
int n;
void gauss(matrix a) }}
int main()
洛谷 4035 JSOI2008 球形空間產生器
題目戳這裡 一句話題意 給你 n 1 個 n 維點,需要你求出這個n維球的球心。n 10 solution 這個題目n維的話確實不好想,反正三維就已經把我搞懵了,所以只好拿二維模擬。首先因為球心到邊上的點距離相等,所以我們可以列出三個式子 設 球心座標為 x 0 y 0 x 1 x 0 2 y 1 ...
洛谷 P1197 JSOI2008 星球大戰
題目描述 很久以前,在乙個遙遠的星系,乙個黑暗的帝國靠著它的超級 統治者整個星系。某一天,憑著乙個偶然的機遇,一支反抗軍摧毀了帝國的超級 並攻下了星系中幾乎所有的星球。這些星球通過特殊的以太隧道互相直接或間接地連線。但好景不長,很快帝國又重新造出了他的超級 憑藉這超級 的力量,帝國開始有計畫地摧毀反...
洛谷 P1198 JSOI2008 最大數
p1198 jsoi2008 最大數現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過當前數列的長度。2 插入操作。語法 a n 功能 將n加上t,其中t是最近一次查詢操作的答案 如果還未執行過查詢操...