题目链接

题目描述

给定一个线性方程组,对其求解

输入输出格式

输入格式:

第一行,一个正整数 n

第二至 n+1行,每行 n+1 个整数,为a1, a2 .....an​ 和 b,代表一组方程。

输出格式:

共n行,每行一个数,第 i行为 xi (保留2位小数)

如果不存在唯一解,在第一行输出"No Solution".

输入输出样例

输入样例#1:

3
1 3 4 5
1 4 7 3
9 3 2 2

输出样例#1:

-0.97
5.18
-2.39

说明

1≤n≤100,∣ai​∣≤104,∣b∣≤104


可以说是高斯消元的模板题了。

高斯消元的基本步骤大概是:找最大主元-->消元直到消成上三角-->回代求解。

各种情况的判断方法:

无解:存在一行ai=0(1≤i≤n)且b!=0。

无数解:存在一行(包括系数)全为0。

唯一解:恰好能消成n行的上三角。

代码:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 typedef double Cu;
 5 int n;
 6 int read(){
 7     int ans=0,f=1;char c=getchar();
 8     while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
 9     while(c>='0'&&c<='9'){ans=ans*10+c-48;c=getchar();}
10     return ans*f;
11 }
12 Cu fabs(Cu a){return a>0?a:-a;}
13 Cu mp[105][105];
14 void swap(int k1,int k2){
15     for(int i=1;i<=n+1;i++){
16         Cu t=mp[k1][i];
17         mp[k1][i]=mp[k2][i];mp[k2][i]=t;
18     }
19 }
20 void gauss(){
21     for(int k=1;k<n;k++){
22         int maxr=k;
23         for(int i=k;i<=n;i++)
24             if(fabs(mp[i][k])>fabs(mp[maxr][k]))maxr=i;//找最大主元
25         if(k!=maxr)swap(k,maxr);
26         for(int i=k+1;i<=n;i++){
27             bool fl=0;
28             Cu temp=mp[i][k]/mp[k][k];
29             for(int j=k;j<=n+1;j++){
30                 mp[i][j]-=mp[k][j]*temp;
31                 if(mp[i][j])fl=1;
32             }
33             if(!fl){printf("No Solution");exit(0);}//判断是否有唯一解
34         }
35     }
36 }
37 int main(){
38     n=read();
39     for(int i=1;i<=n;i++)
40         for(int j=1;j<=n+1;j++)
41             mp[i][j]=read();
42     gauss();
43     for(int i=n;i>=1;i--){
44         for(int j=i+1;j<=n;j++)mp[i][n+1]-=mp[i][j]*mp[j][n+1];//回代
45         mp[i][n+1]/=mp[i][i];//除以系数
46     }
47     for(int i=1;i<=n;i++)printf("%.2f\n",mp[i][n+1]);
48     return 0;
49 }

高斯消元模板

转载于:https://www.cnblogs.com/JKAI/p/7805978.html

【洛谷P3389】【模板】高斯消元相关推荐

  1. 矩阵树 Matrix-Tree 定理实现模板(高斯消元求解行列式)

    大佬1博客:https://www.cnblogs.com/zj75211/p/8039443.html 大佬2博客:https://www.cnblogs.com/yangsongyi/p/1069 ...

  2. 开关问题(模板+高斯消元)

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

  3. 高斯消元(整数型)模板 高斯消元(实数型)模板 高斯消元(异或型)

    整数 #include<iostream> #include<cstdio> using namespace std;#define LL long long #define ...

  4. 初等行变换和高斯消元

    高斯消元   前置芝士:关于线性代数的基本知识   高斯消元是在数学中一种用去求解线性方程组的方法,并且这个算法还能用来求出矩阵的秩和矩阵的逆矩阵.在说高斯消元之前,我们先要说一下什么是矩阵的初等行变 ...

  5. 洛谷 - P4783 【模板】矩阵求逆(高斯消元求逆矩阵)

    题目链接:点击查看 题目大意:给出一个 n * n 的矩阵,求出其逆矩阵,mod 为 1e9 + 7,若不存在输出 No Solution 题目分析:囤个模板,原理就是,初始时在原矩阵右侧设置一个单位 ...

  6. 洛谷 P5027 Barracuda(高斯消元)

    题目链接 Barracuda 题目背景 小正方形的冒险旅途,并不顺利. 一路上,小正方形看到了壮美秀丽的小岛被污染,看到了雄伟壮观的火山,还碰到了许许多多的敌人. 眼下,小正方形正在对付一个巨大的三角 ...

  7. 洛谷 P3211 [HNOI2011]XOR和路径(推dp+高斯消元)

    传送门 首先,异或的话直接讨论不好讨论,那么我们可以按位讨论,对于每一位讨论出来一个结果,然后将结果相加就好了. 然后考虑怎么讨论一位上的结果. 我们可以设出来一个dp方程:f(i)表示i到n的异或和 ...

  8. 高斯消元相关问题学习和模板整理

    目录 前言 高斯消元法 模板 行列式求值 模板 矩阵求逆 模板 前言 为什么要写这篇文章?因为icpc济南J题翻车了,不会写行列式,手里没板子,现场抄书手写,过不了实属正常,所以必须要整理一下高斯消元 ...

  9. ACM数学模板1 高斯消元 Gaussian Elimination

    声明: 题目来源: https://www.luogu.com.cn/problem/P3389 https://www.luogu.com.cn/problem/P2447 https://ac.n ...

最新文章

  1. 华为用MySQL还是oracle_25.Oracle和Mysql的区别
  2. 【深度学习入门到精通系列】CIFAR-10数据集说明
  3. 从零开始做一个SLG游戏(三):用unity绘制图形
  4. 数据结构 - 哈希表(用数组+链表实现存储员工信息,添加增删查功能)
  5. 使用peewee增删查改数据库
  6. azure备份存储层分类_备份到Azure –为什么要这样做?
  7. 如何在MySQL中设置外键约束
  8. 搭建NodeJS环境
  9. js 不相等 多次随机数_node.js静态\动态服务器
  10. 多功能jQuery日期控件基于jeDate
  11. 壁纸小程序云开发+无限裂变+附安装视频教程
  12. dBm与功率(w)换算技巧---心算
  13. Win11删除磁盘分区的方法
  14. SAP-PM设备模块-PM主数据之维护策略
  15. 塔木德分财产,有图,快速过关
  16. SpringBoot:概述,注解,搭建,部署
  17. 2019零基础学Android第0课——零基础怎么学Android?
  18. Linux系统下搭建常用服务器
  19. oracle批处理参数调用,Oracle数据库定时自动备份批处理代码(Windows)
  20. 谷歌pay破解_Google Pay缺少Google闻名的一件事-UX案例研究

热门文章

  1. 【libjpeg.lib】在Windows7下编译生成libjpeg.lib
  2. 带界面的OCX制作实例
  3. 为子控件添加自定义绘图方式
  4. [react-router] React-Router的路由有几种模式?
  5. 前端学习(3055):vue+element今日头条管理-反馈
  6. [html] html的img标签为什么要添加alt属性呢?
  7. [html] html5中的meta标签http-equiv属性有什么作用?
  8. [html] title与h1的区别、b与strong的区别、i与em的区别?
  9. [css] 写例子说明如何强制(自动)中、英文换行与不换行
  10. [js] 微信的JSSDK都有哪些内容?如何接入?