ZOJ 3645 BiliBili 高斯消元 难度:1
2015-05-17 12:28
267 查看
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4835
由题意,有:
(x1-x11)^2 + (x2-x12)^2 ... = D[1]^2
(x1-x21)^2 + (x2-x22)^2 ... = D[2]^2
...
(x1-x12,1)^2 + (x2-x12,2)^2 ... = D[12]^2
所以
-x1^2 + x11 * x1 .... = (-D[12] ^ 2 + x11` ^ 2 + x12 ^ 2 ....)/2
-x1^2 + x21 * x1 .... = (-D[22] ^ 2 + x21 ^ 2 + x22 ^ 2 ....)/2
高斯消元即可
由题意,有:
(x1-x11)^2 + (x2-x12)^2 ... = D[1]^2
(x1-x21)^2 + (x2-x22)^2 ... = D[2]^2
...
(x1-x12,1)^2 + (x2-x12,2)^2 ... = D[12]^2
所以
-x1^2 + x11 * x1 .... = (-D[12] ^ 2 + x11` ^ 2 + x12 ^ 2 ....)/2
-x1^2 + x21 * x1 .... = (-D[22] ^ 2 + x21 ^ 2 + x22 ^ 2 ....)/2
高斯消元即可
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; const int maxn = 15; double g[maxn][maxn],x[maxn]; double eps = 1e-8; void debug(){ for(int i=0;i<12;i++){ for(int j=0;j<12;j++){ printf("%.2f%c",g[i][j],j==11?'\n':' '); } } } void gauss(){ memset(x,0,sizeof x); for(int i = 0;i < 12;i++){ g[i][11] = -g[i][11] * g[i][11]; } for(int i = 0;i < 12;i++){ for(int j = 0;j < 11;j++){ g[i][11] += g[i][j] * g[i][j]; } } for(int i = 0;i < 12;i++){ g[i][11] /= 2; } for(int i = 0;i < 11;i++){ for(int j = 0;j < 12;j++){ g[i][j] -= g[11][j]; } } for(int i = 0;i < 11;i++){ //puts("begin"); // debug(); int maxr = i; for(int j = i;j < 11;j++){ if(fabs(g[j][i]) > fabs(g[maxr][i])){ maxr=j; } } if(maxr != i){ for(int j = i;j < 12;j++){ swap(g[i][j],g[maxr][j]); } } // puts("after swap"); // debug(); for(int j = i + 1;j < 11;j++){ if(g[j][i] != 0){ double tmp = -g[j][i]/g[i][i]; for(int k = i;k < 12;k++){ g[j][k] += tmp * g[i][k]; } } } } for(int i = 10;i >= 0;i--){ double tmp = 0; for(int j = i + 1;j < 11;j++){ tmp += g[i][j] * x[j]; } x[i] = (g[i][11] - tmp) / g[i][i]; } } int main(){ int T; scanf("%d",&T); while(T--){ for(int i = 0;i < 12;i++){ for(int j = 0;j < 12;j++){ scanf("%lf",g[i]+j); } } gauss(); for(int i=0;i<11;i++){ printf("%.2f%c",fabs(x[i])<eps?0:x[i],i==10?'\n':' '); } } }
相关文章推荐
- ZOJ-3645 BiliBili(高斯消元)
- BiliBili zoj 3645 (高斯消元,数学)
- ZOJ 3645 BiliBili (高斯消元)
- ZOJ 3645 :BiliBili _高斯消元
- ZOJ 3645 BiliBili(高斯消元)
- ZOJ 3645 (简单的高斯消元)
- 高斯消元 zoj 3645 poj 1222/XOR消元
- ZOJ 3645 (高斯消元)
- zoj 3645 高斯消元
- ZOJ 3645 BiliBili
- zoj 2619 KMP+高斯消元+概率求期望
- 2012浙大九月月赛 zoj3645 BiliBili-----高斯 浮点型
- NEFU 506&&ZOJ 3353 Chess Board (四种构造的高斯消元)
- UVALive 3490 (LA 3940) || ZOJ 2619 Generator AC自动机(或KMP) + 整数高斯消元 + 数学期望
- ZOJ 3560 Re: the Princess 高斯消元
- ZOJ 3645 BiliBili
- zoj 3353 Chess Board(高斯消元)
- ZOJ - 2619 Generator 高斯消元
- zoj 3353 Chess Board 高斯消元
- zoj - 3645 - BiliBili(线性方程组)