题目链接:点击这里

题目大意:
给定一个线性方程组,对其求解

题目分析:
高斯-约旦消元法
选择一个尚未被选过的未知数作为主元,选择一个包含这个主元的方程
通过加减消元,消掉其它方程中的这个未知数
重复以上步骤,直到把每一行都变成只有一项有系数
这样就可以将矩阵变成对角矩阵了,然后获取一下答案即可
无解输出 −1-1−1 ,无穷多解输出 000
时间复杂度 O(n3)O(n^3)O(n3)
注意:洛谷模板题数据极弱,建议用此题测试模板

具体细节见代码:

//#pragma GCC optimize(2)
//#pragma GCC optimize("Ofast","inline","-ffast-math")
//#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
#define ll long long
#define inf 0x3f3f3f3f
//#define int  ll
#define endl '\n'
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
using namespace std;
int read()
{int res = 0,flag = 1;char ch = getchar();while(ch<'0' || ch>'9'){if(ch == '-') flag = -1;ch = getchar();}while(ch>='0' && ch<='9'){res = (res<<3)+(res<<1)+(ch^48);//res*10+ch-'0';ch = getchar();}return res*flag;
}
const int maxn = 1e2+5;
const int mod = 998244353;
const double pi = acos(-1);
const double eps = 1e-8;
int n,cnt = 1;
double a[maxn][maxn];
int main()
{n = read();for(int i = 1;i <= n;i++)for(int j = 1;j <= n+1;j++) scanf("%lf",&a[i][j]);for(int i = 1;i <= n;i++) // 列 {int pos = cnt;for(int j = cnt+1;j <= n;j++)if(a[pos][i] < a[j][i]) pos = j;if(fabs(a[pos][i]) < eps) continue;for(int j = i;j <= n+1;j++) swap(a[pos][j],a[cnt][j]);for(int j = 1;j <= n;j++) {if(j == cnt) continue;double tmp = a[j][i]/a[cnt][i];for(int k = i+1;k <= n+1;k++) a[j][k] -= tmp*a[cnt][k];}cnt++;}if(cnt <= n){while(cnt <= n) if(a[cnt++][n+1] != 0) return 0*puts("-1");return 0*puts("0");}for(int i = 1;i <= n;i++) {printf("x%d=",i);if(fabs(a[i][n+1]/a[i][i]) < eps) puts("0.00"); // 避免出现 -0.00 else printf("%.2f\n",a[i][n+1]/a[i][i]);}return 0;
}

P2455 [SDOI2006]线性方程组相关推荐

  1. 洛谷 P3389 【模板】高斯消元法 × 洛谷 P2455 [SDOI2006]线性方程组

    一.传送门 https://www.luogu.com.cn/problem/P3389 https://www.luogu.com.cn/problem/P2455 二.代码 日--两道题合起来搞了 ...

  2. 【luogu P2455 [SDOI2006]线性方程组】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2455 无解:最后一列对应元素不为0,前面全是0. 无穷解:一行全是0. 嗯...在消元过程中不要直接拿矩阵元 ...

  3. 洛谷P2455 [SDOI2006]线性方程组

    高斯消元模板 要求输出解的情况(无穷解/无解) 1. 之前写的丑陋代码 #include <iostream> #include <cstdio> #include <c ...

  4. [SDOI2006]线性方程组 高斯消元

    板子题,注意消元的时候无解判断和常数项的操作 码: #include<iostream> #include<cstdio> #include<cmath> usin ...

  5. Luogu2455 [SDOI2006]线性方程组 (高斯消元)

    模板特殊情况没exit(0) $\longrightarrow$60 了一下午 //#include <iostream> #include <cstdio> #include ...

  6. 直接法 matlab,解线性方程组直接方法matlab用法.doc

    解线性方程组直接方法matlab用法 在这章中我们要学习线性方程组的直接法,特别是适合用数学软件在计算机上求解的方法. 2.1 方程组的逆矩阵解法及其MATLAB程序 2.1.3 线性方程组有解的判定 ...

  7. 参考答案:01 线性方程组

    本篇图文为<线性代数及其应用>这本教材对应习题册的参考答案. 从本章开始,我们一起来学习线性代数的有关知识,线性代数的应用之一就是求解复杂方程问题.所以,我们首先从高中时期利用高斯消元法求 ...

  8. 线性代数:03 向量空间 -- 矩阵的零空间,列空间,线性方程组解的结构

    本讲义是自己上课所用幻灯片,里面没有详细的推导过程(笔者板书推导)只以大纲的方式来展示课上的内容,以方便大家下来复习. 本章主要介绍向量空间的知识,与前两章一样本章也可以通过研究解线性方程组的解把所有 ...

  9. 线性代数:第一章 线性方程组

    本讲义是自己上课所用幻灯片,里面没有详细的推导过程(笔者板书推导)只以大纲的方式来展示课上的内容,以方便大家下来复习. 从本章开始,我们一起来学习线性代数的有关知识,线性代数的应用之一就是求解复杂方程 ...

最新文章

  1. CLLocationCoordinate2D 用法 和一个最隐蔽的错误
  2. TaskIcon 系统任务栏图标
  3. vue如何发送网络请求,使用axios事半功倍!
  4. Bitset 用法(STL)
  5. 如何发现假库存照片(并将合适的人归于属性)
  6. Python菜鸟快乐游戏编程_pygame(5)
  7. vs的windows应用程序上的鼠标为什么一直是加载状态?_了解 JavaScript 应用程序中的内存泄漏...
  8. Atitit osi tcp ip 对应attilax总结
  9. python中撤销的快捷键_python常用快捷键
  10. zookeeper应用实战之分布式锁
  11. 《看聊天记录都学不会C语言?太菜了吧》(3)人艰不拆,代码都在谈恋爱?!
  12. ZYNQ系列(一) Petalinux建立工程
  13. Spring-IOC与AOP是解决什么问题的?
  14. swagger 怎么去掉get delete_橡皮擦英文单词怎么读
  15. 防汛抗洪中,北峰应急通信小系统如何筑起通信防线
  16. 尚硅谷《全套Java、Android、HTML5前端视频》
  17. 企业从无到有,云账户CEO大谈创业时代的创业者思维
  18. 计算机教师培训项目申报书,课题《基于培养教师信息素养的教学研究》申报书(2013年4月—2015年3月)...
  19. 快速打开命令行方法集合
  20. CopyOnWriteArraySet

热门文章

  1. centos7 主从dns配置 bind服务
  2. php x86什么意思,win10x86是什么意思
  3. Python - openpyxl Excel 操作示例与实践
  4. 190822——喜欢
  5. matlab典型环节性能仿真,实验一典型环节的matlab仿真
  6. 简单的电源隔离和信号地,电源地的处理
  7. 是什么让区块链游戏变的“好玩”
  8. 统计Textarea中字数的方法
  9. 硬盘变为RAW格式,数据还能恢复吗?
  10. 倍福Twincat NC PTP使用介绍