【bzoj1013】球形空间产生器
高斯消元……
看完线代那一节之后感觉真的是……naive!
线代大法好。
#include<bits/stdc++.h> using namespace std; const double eps=1e-6; int n; double a[21][21],f[21]; inline double sqr(double x){return x*x;} void init(){ scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%lf",f+i); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ double t;scanf("%lf",&t); a[i][j]=2*(t-f[j]); a[i][n+1]+=sqr(t)-sqr(f[j]); } } bool gauss(){ int now=1,to;double t; for(int i=1;i<=n;i++){ for(to=now;to<=n;to++)if(fabs(a[to][i])>eps)break; if(to>n)continue; if(to!=now)for(int j=1;j<=n+1;j++)swap(a[to][j],a[now][j]); t=a[now][i]; for(int j=1;j<=n+1;j++)a[now][j]/=t; for(int j=1;j<=n;j++)if(j!=now){ t=a[j][i]; for(int k=1;k<=n+1;k++)a[j][k]-=t*a[now][k]; } ++now; } for(int i=now;i<=n;i++)if(fabs(a[i][n+1])>eps)return 0; return 1; } int main(){ init();gauss(); for(int i=1;i<n;i++)printf("%.3lf ",a[i][n+1]); printf("%.3lf\n",a[n][n+1]); return 0; }
zzq wc-ctsc-apio-NOI Au;yql精通多项式;zyz精通女装;由乃精通数据结构;孔老师是毒奶大师;我没有学上:我们都有光明的前途。