【BZOJ1013】球形空间产生器,第一次的高斯消元
来源:互联网 发布:linux虚拟机挂载光盘 编辑:程序博客网 时间:2024/03/28 18:33
Time:2016.08.18
Author:xiaoyimi
转载注明出处谢谢
传送门
思路:
板子高斯消元
根据球的方程
,逐次相减后消去未知数的二次项,可以得到n个n元一次方程
具体过程大家可以自己在纸上写写
注意:无
代码:
#include<cstdio>#include<iostream>#include<cmath>using namespace std;int n;double f[12][12],P[12][12],ans[11];void gauss(){ double p; int t; for (int i=1;i<n;++i) { t=i; for (int j=i+1;j<=n;++j) if (fabs(f[j][i])>fabs(f[t][i])) t=j; for (int j=i;j<=n+1;++j) swap(f[i][j],f[t][j]); for (int j=i+1;j<=n;++j) { p=f[j][i]/f[i][i]; for (int k=i+1;k<=n+1;++k) f[j][k]-=f[i][k]*p; } } for (int i=n;i;--i) { p=0; for (int j=i+1;j<=n;++j) p+=f[i][j]*ans[j]; ans[i]=(f[i][n+1]-p)/f[i][i]; }}main(){ scanf("%d",&n); for (int i=1;i<=n+1;++i) for (int j=1;j<=n;++j) scanf("%lf",P[i]+j); for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) f[i][j]=2*(P[i][j]-P[i+1][j]), f[i][n+1]+=P[i][j]*P[i][j]-P[i+1][j]*P[i+1][j]; gauss(); for (int i=1;i<=n;i++) printf("%.3lf%c",ans[i]," \n"[i==n]);}
0 0
- 【BZOJ1013】球形空间产生器,第一次的高斯消元
- [BZOJ1013][JSOI2008][高斯消元]球形空间产生器sphere
- 【bzoj1013】【高斯消元】【球形空间产生器sphere】
- [JSOI2008] [BZOJ1013] 球形空间产生器sphere - 高斯消元
- 【bzoj1013】[JSOI2008]球形空间产生器sphere 高斯消元
- 【BZOJ1013】[JSOI2008]球形空间产生器sphere【高斯消元】
- 【BZOJ1013】球形空间产生器sphere 高斯消元
- BZOJ1013: [JSOI2008]球形空间产生器sphere 高斯消元
- [高斯消元] BZOJ1013: [JSOI2008]球形空间产生器sphere
- BZOJ1013 球形空间产生器sphere (高斯消元)
- [BZOJ1013][JSOI2008]球形空间产生器sphere-高斯消元
- 【高斯消元】BZOJ1013 [JSOI2008]球形空间产生器sphere
- BZOJ1013(JSOI2008)[球形空间产生器sphere]--高斯消元
- 【BZOJ1013】【JSOI2008】球形空间产生器 高斯消元
- bzoj1013 [JSOI2008]球形空间产生器(高斯消元)
- bzoj1013: [JSOI2008]球形空间产生器
- 【JSOI2008】bzoj1013 球形空间产生器
- 【高斯消元】[JSOI2008][HYSBZ/BZOJ1013]球形空间产生器sphere
- 总结
- 四、用文件对数据进行存储
- Python学习笔记--DataFrame使用
- ZZULI 1917: E
- 位运算入门应用以及技巧
- 【BZOJ1013】球形空间产生器,第一次的高斯消元
- 五、Android的assets资源使用
- java经典问题生兔子
- tshark的使用
- PAT乙级.1022. D进制的A+B (20)
- MySQL(四)索引的操作
- SDUT 小明的花费预算 2778(二分)
- 【cocos2dx】jpg纹理占用内存优化
- HDU 1022 Train Problem I 栈