1013: [JSOI2008]球形空间产生器sphere 高斯消元
2016-02-02 16:18
477 查看
第一次写高斯消元。
高斯消元就是通过不断的消去然后回代解n元一次方程组。
本题可以根据距离得到n个方程,然后上gauss就好了。
高斯消元就是通过不断的消去然后回代解n元一次方程组。
本题可以根据距离得到n个方程,然后上gauss就好了。
hljs perl">#include<cstdio> #include<cstring> #include<cmath> #define eps 1e-6 using namespace std; int n; double f[15]; double a[15][15]; inline double sqr(double x) { return x*x; } void gauss() { int y; double t; for (int i=1;i<=n;i++) { for (y=i;y<=n;y++) if (fabs(a[y][i])>eps) break; if (y>n) continue; if (y!=i) for (int j=1;j<=n+1;j++) swap(a[i][j],a[y][j]); t=a[i][i]; for (int j=1;j<=n+1;j++) a[i][j]/=t; for (int j=1;j<=n;j++) if (j!=i) { t=a[j][i]; for (int k=1;k<=n+1;k++) a[j][k]-=t*a[i][k]; } } } int main() { 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]); } gauss(); for (int i=1;i<n;i++) printf("%.3lf ",a[i][n+1]); printf("%.3lf\n",a [n+1]); return 0; }
相关文章推荐
- JS对象的深拷贝
- Javascript类型、值和变量1
- js jsonp跨域请求实现
- AJAX 跨域请求 - JSONP获取JSON数据
- 重学JavaScript(词法结构扫盲点)
- 第九章 JSP标签——《跟我学Shiro》
- js封装class
- JavaScript标签放在HTML的末尾
- javascript实现键盘按下回车时触发
- 工作中用到的js验证
- OpenStack 绘制JS(D3)引用与模板
- js虚拟数字小键盘
- javascript 随机生成一个0-9的随机数
- Head First Javascript读书笔记一
- js 动态添加元素(div、li、img等)及设置属性
- JS获取URL地址参数值
- 图解 javascript: this 指向
- javascript自定义滚动条实现代码
- [转] 疯狂的JSONP
- Ajax实战总结——用原生JavaScript代码封装自己的Ajax核心对象