P4035 [JSOI2008]球形空间产生器

A,B,球心坐标分别为(a1,a2,a3....),(b1,b2,b3....),(c1,c2,c3....)
dist2=(a1c1)2+(a2c2)2+(a3c3)2...... =(b1c1)2+(b2c2)2+(b3c3)2......
所以(a1c1)2+(a2c2)2+(a3c3)2...... =(b1c1)2+(b2c2)2+(b3c3)2......
所以(a1)22a1c1(c1)2+(a2)22a2c2(c2)2...... =(b1)22b1c1(c1)2+(b2)22b2c2(c2)2......
移项得2c1(a1b1)+2c2(a2b2)+......=(a1)2(b1)2+(a2)2(b2)2......
式子就酱紫推出来了

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
double tem[12][12],Augmented_matrix[12][12];
inline int find_pivot( int column ) {
int maxn = column;
for (int i = column + 1; i <= n; ++i) {
if ( Augmented_matrix[i][column] < Augmented_matrix[maxn][column] ) {
maxn = i;
}
}
return maxn;
}
inline void swap_line( int now , int need ) {
for (int column = 1; column <= n + 1; ++column) {
swap( Augmented_matrix[now][column] , Augmented_matrix[need][column] );
}
return;
}
int main()
{
scanf ( "%d" , &n );
for (int i = 1; i <= n + 1; ++i) {
for (int j = 1; j <= n; ++j) {
scanf ( "%lf" , &tem[i][j] );
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
Augmented_matrix[i][j] = 2 * ( tem[i][j] - tem[i + 1][j] );
//因为保证有解 所以不可能出现一列全为0的情况
Augmented_matrix[i][n + 1] += pow( tem[i][j] , 2 ) - pow( tem[i + 1][j] , 2 );
}//化简式子后得到Augmented_martix[i][j]表示的式子
}
for (int line = 1; line <= n; ++line) {
int pivot = find_pivot( line );
swap_line( line , pivot );
for ( int tem_line = 1; tem_line <= n; ++tem_line) {
if ( tem_line != line ) {
double temp = Augmented_matrix[tem_line][line] / Augmented_matrix[line][line];
for (int column = line; column <= n + 1; ++column) {
double temp_number = Augmented_matrix[line][column] * temp;
Augmented_matrix[tem_line][column] -= temp_number;
}
}
}
}
for (int line = 1; line <= n; ++line) {
Augmented_matrix[line][n + 1] /= Augmented_matrix[line][line];
}
//正常高斯消元
for (int line = 1; line <= n; ++line) {
printf ( "%.3lf " , Augmented_matrix[line][n + 1] );
}
return 0;
}
posted @   觉清风  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示