题意:

给你一个方程组(含有12个方程),求(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11)

方程组的形式是一个二次方程组

(ai1-x1)^2 + (ai2-x2)^2 +(ai3-x1)^2 + (ai4-x2)^2 +(ai5-x1)^2 + (ai6-x2)^2 +(ai7-x1)^2 + (ai8-x2)^2 + (ai9-x2)^2 +(ai10-x1)^2 + (ai11-x2)^2 = dis ^2

题解:

二次方程组每个展开之后,每个和上一个相减,就可以得到11个线性方程。

这题就是高斯消元求解普通线性方程的模版题啦。

我的模版:

 void gauss(int n)
{
int i,j,k,l,r;
double f;
for(i=;i<=n;i++)
{
r=i;
for(j=i+;j<=n;j++)
if(myabs(a[j][i])>myabs(a[r][i])) r=j;
if(r!=i) for(j=;j<=n+;j++) swap(a[i][j],a[r][j]); for(j=n+;j>=i;j--)//逆序枚举可以避免用变量保存a[k][i]/a[i][i],避免精度损失
for(k=i+;k<=n;k++)
a[k][j]-=a[k][i]/a[i][i] * a[i][j];
} for(i=n;i>=;i--)
{
for(j=i+;j<=n;j++)
a[i][n+]-=a[j][n+]*a[i][j];
a[i][n+]/=a[i][i];
}
}

代码:

 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std; const int N=;
double a[N][N],b[N][N],c[N]; double myabs(double x){return x> ? x:-x;} void output()
{
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
printf("%.2lf ",a[i][j]);
printf("\n");
}
printf("\n");
} void gauss(int n)
{
int i,j,k,l,r;
double f;
for(i=;i<=n;i++)
{
r=i;
for(j=i+;j<=n;j++)
if(myabs(a[j][i])>myabs(a[r][i])) r=j;
if(r!=i) for(j=;j<=n+;j++) swap(a[i][j],a[r][j]); for(j=n+;j>=i;j--)//逆序枚举可以避免用变量保存a[k][i]/a[i][i],避免精度损失
for(k=i+;k<=n;k++)
a[k][j]-=a[k][i]/a[i][i] * a[i][j];
} for(i=n;i>=;i--)
{
for(j=i+;j<=n;j++)
a[i][n+]-=a[j][n+]*a[i][j];
a[i][n+]/=a[i][i];
}
for(i=;i<=n-;i++) printf("%.2lf ",a[i][n+]);
printf("%.2lf\n",a[n][n+]);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
scanf("%lf",&b[i][j]);
scanf("%lf",&c[i]);
}
memset(a,,sizeof(a));
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
{
a[i][j]=b[i][j]-b[i+][j];
}
a[i][]=c[i+]*c[i+]-c[i]*c[i];
for(int j=;j<=;j++)
a[i][]+=b[i][j]*b[i][j]-b[i+][j]*b[i+][j];
a[i][]/=;
}
// output();
gauss();
}
return ;
}

【zoj3645】高斯消元求解普通线性方程的更多相关文章

  1. 【poj2947】高斯消元求解同模方程组【没有AC,存代码】

    题意: p start enda1,a2......ap (1<=ai<=n)第一行表示从星期start 到星期end 一共生产了p 件装饰物(工作的天数为end-start+1+7*x, ...

  2. 【poj1830-开关问题】高斯消元求解异或方程组

    第一道高斯消元题目~ 题目:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关 ...

  3. POJ 1222 POJ 1830 POJ 1681 POJ 1753 POJ 3185 高斯消元求解一类开关问题

    http://poj.org/problem?id=1222 http://poj.org/problem?id=1830 http://poj.org/problem?id=1681 http:// ...

  4. POJ 1830 开关问题(高斯消元求解的情况)

    开关问题 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8714   Accepted: 3424 Description ...

  5. POJ 2065 高斯消元求解问题

    题目大意: f[k] = ∑a[i]*k^i % p 每一个f[k]的值就是字符串上第 k 个元素映射的值,*代表f[k] = 0 , 字母代表f[k] = str[i]-'a'+1 把每一个k^i求 ...

  6. 【poj1222-又一道开关问题】高斯消元求解异或方程组

    题意:给出一个5*6的图,每个灯泡有一个初始状态,1表示亮,0表示灭.每对一个灯泡操作时,会影响周围的灯泡改变亮灭,问如何操作可以使得所有灯泡都关掉. 题解: 这题和上一题几乎完全一样..就是要输出解 ...

  7. hdu 5833 Zhu and 772002 高斯消元

    Zhu and 772002 Problem Description Zhu and 772002 are both good at math. One day, Zhu wants to test ...

  8. 【BZOJ1013】【JSOI2008】球形空间产生器sphere(高斯消元)

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1600  Solved: 860[Submi ...

  9. HDU4870_Rating_双号从零单排_高斯消元求期望

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...

随机推荐

  1. 2017-2018-2 20172323 『Java程序设计』课程 结对编程练习_四则运算

    结对编程的好丽友 - 20172323 王禹涵:中缀转后缀 - 20172314 方艺雯:后缀表达式的计算 - 20172305 谭鑫:中缀表达式的输出 需求分析 能随机生成由使用者确定的任意多道四则 ...

  2. 后端设置cookie写不到前端页面

    javax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie("id",session.getId()); co ...

  3. lintcode-15-全排列

    全排列 给定一个数字列表,返回其所有可能的排列. 注意事项 你可以假设没有重复数字. 样例 给出一个列表[1,2,3],其全排列为: [ [1,2,3], [1,3,2], [2,1,3], [2,3 ...

  4. angular4中使用jquer插件

    有以下办法 1 在html文档头部引入jquery插件依赖,但是文档一旦变动就麻烦了 2 使用指令:http://www.cnblogs.com/liuyt/p/5810100.html 指令是把利器 ...

  5. 【week2】 词频统计第一次更新

    词频统计: 对每个功能预计时间: 功能 预计(min) 实际(min) 数据流读入 20 40 正则规范字符串 15 20 排序 30 45 输出 20 30 其他   25 词频统计psp 日期 类 ...

  6. STL--heap概述:make_heap,sort_heap,pop_heap,push_heap

    heap并不属于STL容器组件,它分为 max heap 和min heap,在缺省情况下,max-heap是优先队列(priority queue)的底层实现机制. 而这个实现机制中的max-hea ...

  7. SpringBoot JDBC/AOP

    JDBC 工程结构: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  8. Python字符串的简单操作

    数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...

  9. hadoop 把mapreduce任务从本地提交到hadoop集群上运行

    MapReduce任务有三种运行方式: 1.windows(linux)本地调试运行,需要本地hadoop环境支持 2.本地编译成jar包,手动发送到hadoop集群上用hadoop jar或者yar ...

  10. KNIGHTS - Knights of the Round Table 圆桌骑士 点双 + 二分图判定

    ---题面--- 题解: 考场上只想到了找点双,,,,然后不知道怎么处理奇环的问题. 我们考虑对图取补集,这样两点之间连边就代表它们可以相邻, 那么一个点合法当且仅当有至少一个大小至少为3的奇环经过了 ...