【zoj3645】高斯消元求解普通线性方程
题意:
给你一个方程组(含有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】高斯消元求解普通线性方程的更多相关文章
- 【poj2947】高斯消元求解同模方程组【没有AC,存代码】
题意: p start enda1,a2......ap (1<=ai<=n)第一行表示从星期start 到星期end 一共生产了p 件装饰物(工作的天数为end-start+1+7*x, ...
- 【poj1830-开关问题】高斯消元求解异或方程组
第一道高斯消元题目~ 题目:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关 ...
- 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:// ...
- POJ 1830 开关问题(高斯消元求解的情况)
开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8714 Accepted: 3424 Description ...
- POJ 2065 高斯消元求解问题
题目大意: f[k] = ∑a[i]*k^i % p 每一个f[k]的值就是字符串上第 k 个元素映射的值,*代表f[k] = 0 , 字母代表f[k] = str[i]-'a'+1 把每一个k^i求 ...
- 【poj1222-又一道开关问题】高斯消元求解异或方程组
题意:给出一个5*6的图,每个灯泡有一个初始状态,1表示亮,0表示灭.每对一个灯泡操作时,会影响周围的灯泡改变亮灭,问如何操作可以使得所有灯泡都关掉. 题解: 这题和上一题几乎完全一样..就是要输出解 ...
- hdu 5833 Zhu and 772002 高斯消元
Zhu and 772002 Problem Description Zhu and 772002 are both good at math. One day, Zhu wants to test ...
- 【BZOJ1013】【JSOI2008】球形空间产生器sphere(高斯消元)
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1600 Solved: 860[Submi ...
- HDU4870_Rating_双号从零单排_高斯消元求期望
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...
随机推荐
- html+css基础 - 个人备忘录
//======================html部分===================// 表现内容<meta http-equiv="Content-Type" ...
- 计算器软件实现系列(六)windowform窗体+SQL+策略模式
一 整体概述 这个计算器软件的功能和以前的功能基本上一样,只不过是数据的保存形式发生了变化,,以前用的是txt文件保存,现在更正用SQL数据库,现在更改了以前的文件保存形式,是三层架构中数据层的更换, ...
- TCP系列40—拥塞控制—3、慢启动和拥塞避免概述
本篇中先介绍一下慢启动和拥塞避免的大概过程,下一篇中将会给出多个linux下reno拥塞控制算法的wireshark示例,并详细解释慢启动和拥塞避免的过程. 一.慢启动(slow start) 一个T ...
- <Android>spinner/AutoCompleteTextView绑定适配器
position = (Spinner)findViewById(R.id.position); String[] str = {"CEO","CFO",&qu ...
- TensorFlow安装及jupyter notebook配置
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:TensorFlow安装及jupyter notebook配置 本文地址:http:/ ...
- Android------BottonTabBar
前言:一款简单好用封装好的AndroidUI控件,底部导航栏. 1.使用 1.1添加 compile 'com.hjm:BottomTabBar:1.1.1' 1.2 activity_main. ...
- linux 装redmine
看第一篇 https://www.cnblogs.com/iluzhiyong/p/redmine.html 看第二篇 http://blog.51yip.com/cloud/1874.html 基本 ...
- P1365 WJMZBMR打osu! / Easy
题目背景 原 维护队列 参见P1903 题目描述 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有 nnn 次点击要做,成功了就是o,失败了 ...
- 【题解】CF#855 G-Harry Vs Voldemort
个人感觉挺有意思的,然而被颜神D无聊惹(- ̄▽ ̄)- 这题我们可以首先试图去统计以每一个点作为 w 点所能对答案造成的贡献是多少.不难发现,当且仅当 u 和 v 都在 w 所在边双的一侧的时候不能构成 ...
- [NOIP2017]逛公园 最短路图 拓扑序DP
---题面--- 题解: 挺好的一道题. 首先我们将所有边反向,跑出n到每个点的最短路,然后f[i][j]表示从i号节点出发,路径长比最短路大j的方案数. 观察到,如果图中出现了0环,那么我们可以通过 ...