[Luogu 3389]【模板】高斯消元法
Description
给定一个线性方程组,对其求解
Input
第一行,一个正整数 n
第二至 n+1 行,每行 n+1 个整数,为a1,a2⋯an和 b,代表一组方程。1,a2⋯an 和 bbb,代表一组方程。
Output
共n行,每行一个数,第 i 行为 xi
如果不存在唯一解,在第一行输出"No Solution".
Sample Input
3
1 3 4 5
1 4 7 3
9 3 2 2
Sample Output
-0.97
5.18
-2.39
HINT
aaarticlea/png;base64,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" alt="" />
题解
矩阵变换:
一、交换变换:$R_i<->R_j$,表示将$R_i$与$R_j$的所有元素对应交换
二、倍法变换:$R_i=R_i*k$,表示将$R_i$行的所有元素都乘上一个常数$k$
三、消去变换:$R_i=R_i+R_j*k$,表示将$R_i$行的所有元素对应的加上$R_j$行元素的$k$倍
------------------------------------------------------------------
实数解直接加减消元
整数解消元的时候用最小公倍数消去目标系数
------------------------------------------------------------------
① 无解 当方程中出现$(0, 0, …, 0, a)$的形式,且$a != 0$时,说明是无解的。
② 唯一解 形成了严格的上三角阵
③ 无穷解 不能形成严格的上三角形
//It is made by Awson on 2017.10.10
#include <set>
#include <map>
#include <cmath>
#include <ctime>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define sqr(x) ((x)*(x))
using namespace std;
const int N = ; int n;
double a[N+][N+]; void Gauss() {
for (int line = ; line <= n; line++) {
int Max_line = line;
for (int i = line+; i <= n; i++)
if (fabs(a[i][line]) > fabs(a[Max_line][line]))
Max_line = i;
if (Max_line != line) swap(a[line], a[Max_line]);
if (a[line][line] == ) {
printf("No Solution\n");
return;
}
for (int i = line+; i <= n; i++) {
double tmp = a[i][line]/a[line][line];
for (int j = line; j <= n+; j++)
a[i][j] -= a[line][j]*tmp;
}
}
for (int i = n; i >= ; i--) {
for (int j = i+; j <= n; j++)
a[i][n+] -= a[j][n+]*a[i][j];
a[i][n+] /= a[i][i];
}
for (int i = ; i <= n ;i++)
printf("%.2lf\n", a[i][n+]);
}
void work() {
scanf("%d", &n);
for (int i = ; i <= n; i++)
for (int j = ; j <= n+; j++)
scanf("%lf", &a[i][j]);
Gauss();
}
int main() {
work();
return ;
}
[Luogu 3389]【模板】高斯消元法的更多相关文章
- [luogu P3384] [模板]树链剖分
[luogu P3384] [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点 ...
- Luogu P2742 模板-二维凸包
Luogu P2742 模板-二维凸包 之前写的实在是太蠢了.于是重新写了一个. 用 \(Graham\) 算法求凸包. 注意两个向量 \(a\times b>0\) 的意义是 \(b\) 在 ...
- luogu P3919 [模板]可持久化数组(可持久化线段树/平衡树)(主席树)
luogu P3919 [模板]可持久化数组(可持久化线段树/平衡树) 题目 #include<iostream> #include<cstdlib> #include< ...
- luogu 3389 【模板】高斯消元
大概就是对每一行先找到最大的减小误差,然后代入消元 #include<iostream> #include<cstdio> #include<cstring> #i ...
- Luogu [P3367] 模板 并查集
[模板]并查集 题目详见:[[P3367][模板]并查集] (https://www.luogu.org/problemnew/show/P3367) 这是一道裸的并查集题目(要不然叫模板呢) 废话不 ...
- Luogu P3381 (模板题) 最小费用最大流
<题目链接> 题目大意: 给定一张图,给定条边的容量和单位流量费用,并且给定源点和汇点.问你从源点到汇点的最带流和在流量最大的情况下的最小费用. 解题分析: 最小费用最大流果题. 下面的是 ...
- 51: Luogu 2485 模板
$des$ 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最小非负整数x: 3.给定y.z.p,计算满足y^x ≡z(mod p)的最小非负 ...
- [Luogu] 【模板】点分治1
// 模板题#include <bits/stdc++.h> ; , head[N], dis[N]; ]; int size[N], maxson[N], Root; bool vis[ ...
- luogu P5410 模板 扩展 KMP Z函数 模板
LINK:P5410 模板 扩展 KMP Z 函数 画了10min学习了一下. 不算很难 思想就是利用前面的最长匹配来更新后面的东西. 复杂度是线性的 如果不要求线性可能直接上SA更舒服一点? 不管了 ...
随机推荐
- vue计算属性详解——小白速会
一.什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...
- 配置tomcat8数据源(采用局部数据源方式)
tomcat提供两种数据源配置方式,全局和局部.全局的话对于所有web应用都生效,局部只对于配置的某一个web生效. 步骤: 1.将mysql的jdbc驱动复制到tomcat的lib路径下. 2.在t ...
- Linux进程管理之task_struct结构体
进程是处于执行期的程序以及它所管理的资源(如打开的文件.挂起的信号.进程状态.地址空间等等)的总称.注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源. ...
- 201421123042 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...
- Faster R-CNN 的 RPN 是啥子?
 Faster R-CNN,由两个模块组成: 第一个模块是深度全卷积网络 RPN,用于 region proposal; 第二个模块是Fast R-CNN检测器,它使用了RPN产生的region p ...
- 从同步阻塞聊到Java三种IO方式
本文总结自 https://zhuanlan.zhihu.com/p/34408883, https://www.zhihu.com/question/19732473中愚抄的回答, http://b ...
- APP手机端加载不到资源服务器后台解决参考
今天发现app登录时,报could not get resource,日志中打印的是redis相关的错误,于是开始一步步检查错误! 后台架构:redis+mysql+elk+tomcat+zookee ...
- emqtt 试用(一)安装和测试
一.安装 http://emqtt.io/docs/v2/getstarted.html http://emqtt.io/docs/v2/advanced.html http://emqtt.io/d ...
- 解决编写的 html 乱码问题
- HTML中的上下标标签的演示
HTML中的上下标标签的演示 #table_head>td { font-weight: bold } tr { text-align: center } 作用 标签 演示代码 呈现效果 上标 ...