【luogu P2455 [SDOI2006]线性方程组】 题解
题目链接:https://www.luogu.org/problemnew/show/P2455
无解:最后一列对应元素不为0,前面全是0.
无穷解:一行全是0.
嗯...在消元过程中不要直接拿矩阵元素自己消,会把自己消成0.
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
const int maxn = ;
const double eps = 1e-;
double A[maxn][maxn], ans[maxn];
int n;
int main()
{
scanf("%d",&n);
for(int i = ; i <= n; i++)
for(int j = ; j <= n+; j++)
scanf("%lf", &A[i][j]);
for(int i = ; i <= n; i++)
{
int p = i;
for(int j = i + ; j <= n; j++)
if(fabs(A[j][i]) > fabs(A[p][i])) p = j;
for(int j = ; j <= n + ; j++) swap(A[p][j],A[i][j]); if(fabs(A[i][i]) < eps) continue;
double div = A[i][i];
for(int j = ; j <= n + ; j++) A[i][j]/=div;
for(int j = ; j <= n; j++)
{
if(i != j)
{
double div = A[j][i];
for(int k = ; k <= n + ; k++) A[j][k] -= A[i][k]*div;
}
}
}
int NoSolution = , ManySolution = ;
for(int i = ; i <= n; i++)
{
int Nonum = , Manynum = ;
for(int j = ; j <= n + && fabs(A[i][j]) < eps; j++)
Nonum++,Manynum++;
if(Manynum > n) ManySolution = ;
if(Nonum == n) NoSolution = ;
}
if(NoSolution) {printf("-1");return ;}
if(ManySolution) {printf("");return ;}
for(int i = n; i >= ; i--)
{
ans[i] = A[i][n+];
for(int j = i - ; j >= ; j--)
{
A[j][n+] -= ans[i] * A[j][i];
A[j][i] = ;
}
}
for(int i = ; i <= n; i++)
printf("x%d=%.2lf\n",i,ans[i] + eps);
return ;
}
【luogu P2455 [SDOI2006]线性方程组】 题解的更多相关文章
- Luogu P2455 [SDOI2006]线性方程组 真•高斯消元板子
果然如Miracle学长所说...调了一天...qwq..还是过不了线下的Hack upd after 40min:刚刚过了 就是多了一个判无解的操作... 当系数都为0,且常数项不为0时,即为无解. ...
- P2455 [SDOI2006]线性方程组(real gauss)
P2455 [SDOI2006]线性方程组 (upd 2018.11.08: 这才是真正的高斯消元模板) 找到所消未知数(设为x)系数最大的式子,把它提上来 把这个式子的 x 系数约成1 把这个式子用 ...
- P2455 [SDOI2006]线性方程组
P2455 [SDOI2006]线性方程组 真\(\cdot\)高斯消元模板题 由于各种hack数据被造出来~码量突增~,其实也就多了二三十行 将每行系数消到最多有一个非0数 特殊情况: 在过程同时 ...
- 洛谷P2455 [SDOI2006]线性方程组(高斯消元)
题目描述 已知n元线性一次方程组. 其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmq ...
- 洛谷P2455 [SDOI2006]线性方程组
高斯消元模板 要求输出解的情况(无穷解/无解) 1. 之前写的丑陋代码 #include <iostream> #include <cstdio> #include <c ...
- 【luogu P5022 旅行】 题解
题目连接:https://www.luogu.org/problemnew/show/P5022 \(NOIP2018 DAY2T1\) 考场上只写了60分,很容易想到当 m = n - 1 时的树的 ...
- [luogu 2458][SDOI2006]保安站岗
题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地下超市的所有通道呈一棵树的形状:某些通道之间可以互 ...
- 【luogu P2831 愤怒的小鸟】 题解
题目链接:https://www.luogu.org/problemnew/show/P2831 写点做题总结:dp,搜索,重在设计状态,状态设的好,转移起来也方便. 对于一条抛物线,三点确定.(0, ...
- 【luogu P2827 蚯蚓】 题解
题目链接:https://www.luogu.org/problemnew/show/P2827 35分:暴力sortO(mnlogn). 80分:考虑到每次不好维护不被切的点+q,正难则反.改成维护 ...
随机推荐
- 023-将表单序列化为json对象
使用jQuery将表单序列化为json对象,其中serializeJson方法的名字任意,serializeArray()这个jQuery提供的方法.this指的就是谁调用了这个方法. $.fn.se ...
- ztree框架使用问题汇总
1.如何让用户只能点击页子节点 var setting = { callback: { beforeClick: zTreeBeforeClick } }; function zTreeBeforeC ...
- 新手 php连接数据库大概。简单过程浅析以及遇到的问题分析
原文作者:aircraft 原文地址: https://www.cnblogs.com/DOMLX/p/8116845.html 重点:PHP运行在服务器上的请记住!!! 1.在连接数据库与PHP之前 ...
- git读书笔记以及使用技巧
[添加文件] git add 把文件修改添加到暂存区 git commit -m '' 把暂存区的所有内容提交到当前分支 [查看历史] git log 查看提交历史 git log -- ...
- 8086键盘输入实验——《x86汇编语言:从实模式到保护模式》读书笔记07
1.BIOS中断 我们可以为所有中断类型自定义中断处理过程,包括内部中断.硬件中断和软中断. BIOS中断,又称BIOS功能调用,主要是为了方便地使用最基本的硬件访问功能.通常,为了区分针对同一硬件的 ...
- java多线程之线程组与线程池
看这篇文章:http://blog.csdn.net/zen99t/article/details/50909099
- pat02-线性结构2. 一元多项式求导 (25)
02-线性结构2. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整 ...
- Javaweb三大组件-过滤器、监听器
1. 过滤器 [filter] 作用: 对单个获取多个servlet起到增强[advice]的作用. 用于在所有的servlet执行前,做一些预处理.例如:做编码处理, 访问量统计[servletCo ...
- 《Hadoop权威指南》读书笔记1
<Hadoop权威指南>读书笔记 Day1 第一章 1.MapReduce适合一次写入.多次读取数据的应用,关系型数据库则更适合持续更新的数据集. 2.MapReduce是一种线性的可伸缩 ...
- Linux的find命令实例详解和mtime ctime atime
这次解释一下三个Linux文件显示的三个时间,然后展示一下find命令的各个功能 在linux操作系统中,每个文件都有很多的时间参数,其中有三个比较主要,分别是ctime,atime,mtime mo ...