题目描述

已知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. Java-HashSet集合中的几种遍历方式

    //我们先创建一个set集合 public static void main(String[] args) { Set<Integer> sets = new HashSet<> ...

  2. 002:CSS基础

    注意:蓝色 重要:红色 目录: 1. 学会使用CSS选择器: 9大选择器.交集选择器.并集选择器.后代选择器.子代选择器.伪类选择器. 2.font.color.横向竖向居中.文本修饰.首行缩进. f ...

  3. .NET Conf 2019 大会上发布.NET Core 3.0

    北京时间今天凌晨如期在.NET Conf 上发布.NET Core 3.0,Keynotes 由Scott Hunter 主演,主要围绕.NET Core 3.0的新特性和社区展开. 多功能性是.Ne ...

  4. [LeetCode]sum合集

    LeetCode很喜欢sum,里面sum题一堆. 1.Two Sum Given an array of integers, return indices of the two numbers suc ...

  5. ECSHOP完美解决Deprecated: preg_replace()报错的问题

    随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百 ...

  6. 设计模式笔记(一):Singleton 设计模式

    今天开始学习设计模式,借此机会学习并整理学习笔记. 设计模式是一门不区分语言的课程,什么样的编程语言都可以用到设计模式.如果说java语法规则比作武功招式的话,那么设计模式就是心法. 设计模式共有23 ...

  7. 网络编程之多线程——GIL全局解释器锁

    网络编程之多线程--GIL全局解释器锁 一.引子 定义: In CPython, the global interpreter lock, or GIL, is a mutex that preven ...

  8. Java中的方法和方法重载

    上次我们讲了Java中的一些基本的语法;今天我们就讲一点内容,来说说Java中的方法和方法重载以及需要注意的一些地方; 方法: Java的方法类似与其他语言的函数,是一段用来完成特定功能的代码片段, ...

  9. elasticsearch倒排索引与TF-IDF算法

    elasticsearch专栏:https://www.cnblogs.com/hello-shf/category/1550315.html 一.倒排索引(Inverted Index)简介 在关系 ...

  10. 第六届蓝桥杯java b组第五题

    九数组分数 1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. public class A { public static vo ...