题目描述

已知n元线性一次方程组。

其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmqqdd提出题目描述的说明)(redbag:是mqd自己要我写的= =)[/color][/b].

编程任务:

根据输入的数据,编程输出方程组的解的情况。

输入输出格式

输入格式:

第一行:未知数的个数。以下n行n+1列:分别表示每一格方程的系数及方程右边的值。

输出格式:

如果方程组无实数解输出-1;

如果有无穷多实数解,输出0;

如果有唯一解,则输出解(小数点后保留两位小数)。

输入输出样例

输入样例#1:
复制

3
2 -1 1 1
4 1 -1 5
1 1 1 0
输出样例#1: 复制

x1=1.00
x2=0
x3=-1.00


这个高斯消元的板子略恶心。
我发现我写了一辈子的错的高斯消元,现在感觉很是不好233.


#include <iostream>
#include <cstdio>
#include <queue>
#include <cmath>
using namespace std;
#define reg register
inline int read() {
int res = ;char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch)) res=(res<<)+(res<<)+(ch^), ch=getchar();
return res;
} int n;
double a[][];
double ans[]; inline void Gauss()
{
for (reg int i = ; i <= n ; i ++)
{
int piv = i;
for (reg int j = i + ; j <= n ; j ++)
if (fabs(a[piv][i]) < fabs(a[j][i])) piv = j;
if (piv != i)
for (reg int j = ; j <= n + ; j ++)
swap(a[piv][j], a[i][j]);
if (fabs(a[i][i]) < 1e-) continue;
double div = a[i][i];
for (reg int j = ; j <= n + ; j ++) a[i][j] /= div;
for (reg int j = ; j <= n ; j ++)
if (i != j) {
div = a[j][i];
for (reg int k = ; k <= n + ; k ++)
a[j][k] -= div * a[i][k];
}
}
} int main()
{
n = read();
for (reg int i = ; i <= n ; i ++)
for (reg int j = ; j <= n + ; j ++)
scanf("%lf", &a[i][j]);
Gauss();
bool opt1 = ;
bool opt2 = ;
for(int i = ; i <=n ; i ++){
int j = ;
while (fabs(a[i][j]) < 1e- and j <= n + ) j++;
if(j > n + ) opt1 = ;
else if(j == n + ) opt2 = ;
}
if(opt2) {
printf("-1");
return ;
}
if(opt1) {
printf("");
return ;
}
for (reg int i = n ; i >= ; i --)
{
ans[i] = a[i][n+];
for (reg int j = i - ; j >= ; j --)
{
a[j][n+] -= ans[i] * a[j][i];
a[j][i] = ;
}
}
for (reg int i = ; i <= n ; i ++)
if (fabs(ans[i]) < 1e-) printf("x%d=0\n", i);
else printf("x%d=%.2lf\n", i, ans[i]);
return ;
}

[Luogu2455] [SDOI2006]线性方程组的更多相关文章

  1. luogu2455 [SDOI2006]线性方程组 高斯消元法

    #include <iostream> #include <cstdio> #include <cmath> using namespace std; int n, ...

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

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

  3. P2455 [SDOI2006]线性方程组(real gauss)

    P2455 [SDOI2006]线性方程组 (upd 2018.11.08: 这才是真正的高斯消元模板) 找到所消未知数(设为x)系数最大的式子,把它提上来 把这个式子的 x 系数约成1 把这个式子用 ...

  4. P2455 [SDOI2006]线性方程组

    P2455 [SDOI2006]线性方程组 真\(\cdot\)高斯消元模板题 由于各种hack数据被造出来~码量突增~,其实也就多了二三十行 将每行系数消到最多有一个非0数 特殊情况: 在过程同时 ...

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

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

  6. Luogu P2455 [SDOI2006]线性方程组 真•高斯消元板子

    果然如Miracle学长所说...调了一天...qwq..还是过不了线下的Hack upd after 40min:刚刚过了 就是多了一个判无解的操作... 当系数都为0,且常数项不为0时,即为无解. ...

  7. 洛谷P2455 [SDOI2006]线性方程组(高斯消元)

    题目描述 已知n元线性一次方程组. 其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmq ...

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

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

  9. [SDOI2006] 线性方程组

    洛谷 P2455 传送门 刚开始写了个消成上三角的,结果狂wa. 后来经过研究发现,消成上三角那种不能直接判断无解或无穷多解,需要其它的操作. 所以干脆学了个消成对角线的,写了一发A了. 其实两种消元 ...

随机推荐

  1. Winform中使用FastReport实现简单的自定义PDF导出

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  2. 基于redis(订阅发布)实现python和java进程间通信

    主要结构为: python进程发布消息,java进程订阅消息. 依赖环境: python:   pip install redis java:  jedis 1. python端: PubSub.py ...

  3. Flutter 中文文档网站 flutter.cn 正式发布!

    在通常的对 Flutter 介绍中,最耳熟能详的是下面四个特点: 精美 (Beautiful):充分的赋予和发挥设计师的创造力和想象力,让你真正掌控屏幕上的每一个像素. ** 极速 (Fast)**: ...

  4. php装上sqlserver驱动后仍然显示Call to undefined function sqlsrv_connect()问题

    今天老师要求本来的php+mysql改为php+sqlserver,在网上搜索了相应的教程,说是“需要下载安装Microsoft Drivers for PHP for SQL Server驱动”,下 ...

  5. IBM MQ reason code list

    The reason code parameter (Reason) is a qualification to the completion code parameter (CompCode). I ...

  6. 前端之JavaScript篇

    一. 简介 javascript是一门动态弱类型的解释性编程语言, 增强页面动画效果,实现页面与用户之间实时动态的交互.  JavaScript有三部分组成: ECMAscript, DOM, BOM ...

  7. Day 1 linux系统的发展史与虚拟机的安装过程

    自由软件之父 Richard M. Stallman 1984 发起了GNU组织 copyleft opensourc free GPL copyleft 代表无版权.copyright 代表有版权. ...

  8. tcp居然会数据延迟40ms被发送

    tcpdump是很好的tcp分析工具,在此配合nc命令来学习tcpdump nc -l 8000 tcpdump -S -n -i lo tcp and host 127.0.0.1 and port ...

  9. cocos 微信小游戏切后台卡住

    1.cocos 安装目录下搜索以下代码并注掉opts["preserveDrawingBuffer"] = true;”2.CocosCreator\resources\engin ...

  10. 指尖前端重构(React)技术调研分析

    摘要:重构前的技术文档调研与分析,包括技术选型为什么选择react,应用过程中的注意事项等. 一.为什么选择React React是当前前端应用最广泛的框架.三大SPA框架 Angular.React ...