[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更舒服一点? 不管了 ...
随机推荐
- linux分析、诊断及调优必备的“杀器”之二
先说明下,之所以同类内容分成多篇文章,不是为了凑篇数,而是为了便于自己和大家阅读,下面继续: 7.sar The sar command is used to collect, report, and ...
- C第九次博客作业--指针
一.PTA实验作业 题目1:两个4位正整数的后两位互换 1. 本题PTA提交列 2. 设计思路 3.代码截图 本题调试过程碰到问题及PTA提交列表情况说明 刚开始想到的交换是令t=a;a=b;b=t这 ...
- 201621123031 《Java程序设计》第10周学习总结
作业10-异常 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 1.捕捉异常 Java中的异常捕获结构由try.catch和finally三个部分组成.其中try语句 ...
- 基于scrapy爬虫的天气数据采集(python)
基于scrapy爬虫的天气数据采集(python) 一.实验介绍 1.1. 知识点 本节实验中将学习和实践以下知识点: Python基本语法 Scrapy框架 爬虫的概念 二.实验效果 三.项目实战 ...
- STM32F4系列单片机上使用CUBE配置MBEDTLS实现pem格式公钥导入
|版权声明:本文为博主原创文章,未经博主允许不得转载. 最近尝试在STM32F4下用MBEDTLS实现了公钥导入(我使用的是ECC加密),整个过程使用起来比较简单. 首先,STM32F4系列CUBE里 ...
- 用nodejs 开发的智能提示
用nodejs 开发的智能提示 时间:2014-07-01 03:50:18 类别:搜索引擎 访问: 2576 次 感谢:http://lutaf.com/223.htm 智能提示对于搜索非常重要,相 ...
- OpenShift实战(二):OpenShift节点扩容
1.新增节点信息 增加节点如下,请将xxx改为自己的域名 node6.xxx.net Node 192.168.8.90 8G 20G/60G 4C node7.xxx.net Node 192.16 ...
- Mego开发文档 - 快速概述
Mego 快速概述 Mego 是一款轻量级,可扩展和跨平台的数据访问技术. Mego 是一个对象关系映射器(O / RM),它使.NET开发人员能够使用.NET对象处理数据库.它消除了开发人员通常需要 ...
- springboot多模块项目下,子模块调用报错:程序包xxxxx不存在
今天在用springboot搭建多模块项目,结构中有一个父工程Parent 一个通用核心工程core 以及一个项目工程A 当我在工程A中引入core时,没有问题,maven install正常 当我 ...
- Apollo单向SSL认证(2)
一.生成ks和ts 二.连接测试 1.配置 2.测试