洛谷 P2455 传送门

刚开始写了个消成上三角的,结果狂wa。

后来经过研究发现,消成上三角那种不能直接判断无解或无穷多解,需要其它的操作。

所以干脆学了个消成对角线的,写了一发A了。

其实两种消元的方法都差不多,就当存个板子吧。

 #include<cstdio>

 void swap(double &x,double &y)
{
double t=x;x=y;y=t;
} double v(double rx)
{
return rx>?rx:(-rx);
} int n;
double a[][];
double x[];
const double eps=0.00001; 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(v(a[j][i])>v(a[p][i]))p=j;
if(i!=p)for(int j=i;j<=n+;j++)swap(a[i][j],a[p][j]);
if(v(a[i][i])<eps)continue;
double div=a[i][i];
for(int j=i;j<=n+;j++)a[i][j]/=div;
for(int j=;j<=n;j++)
{
if(i==j)continue;
double div=a[j][i];
for(int k=;k<=n+;k++)
a[j][k]-=div*a[i][k];
}
}
int no=,inf=;
for(int i=;i<=n;i++)
{
int p=;
while(p<=n+&&v(a[i][p])<=eps)p++;
if(p==n+)no=;
if(p>n+)inf=;
}
if(no){printf("-1");return ;}
if(inf){printf("");return ;}
for(int i=n;i;i--)x[i]=a[i][n+];
for(int i=;i<=n;i++)
printf("x%d=%.2lf\n",i,x[i]);
return ;
}

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

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

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

  2. P2455 [SDOI2006]线性方程组

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

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

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

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

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

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

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

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

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

  7. [Luogu2455] [SDOI2006]线性方程组

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

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

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

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

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

随机推荐

  1. coures包下载和安装 可解决报错ImportError: No module named '_curses'

    http://blog.csdn.net/liyaoqing/article/details/54949253 coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方 ...

  2. SVN服务器的搭建(三)

    接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态, ...

  3. 关于RL78 系列的bootloader

    1.充分了解芯片FLASH结构分布,对FLASH进行分区 2.熟练使用FSL库 3.调试中断映射功能 4.调试一种通信方式,UART,CAN等 5.对FLASH进行编程,执行跳转APP程序,调试一个多 ...

  4. 高精度处理斐波那契序列(C语言)

    #include<stdio.h> #include<string.h> //memset,strcpy,strlen函数头文件 int main(void) { ];//用来 ...

  5. c++ 装饰器模式/包装模式

    理解 使用两个隔离又继承自统一接口类的对象:方法对象(抽象/具体), 包装器对象(抽象/具体)实现多种组合只需要 n + m种实现, 而对比直接继承,则需要n*m 种实现,因此在面对多种具体类和多种额 ...

  6. index|substr

    #!/usr/bin/perl use strict; use warnings; $_ = 'duwanxkm,c.,df;oq123@#!@%$#^'; my $d ='d';my $o = 'o ...

  7. 把ngnix注册为linux服务 将Nginx设置为linux下的服务

    一.创建服务脚本 vim /etc/init.d/nginx 脚本内容如下 #! /bin/sh # chkconfig: - 85 15 PATH=/web/server/nginx/sbin DE ...

  8. 爬虫笔记(十一)——认识cookie

    什么是cookie? 在爬虫的使用中,如果涉及登录等操作时,经常会使用到cookie.简单的来说,我们访问每一个互联网页面,都是通过HTTP协议进行的,而HTTP协议是一个无状态协议,所谓的无状态协议 ...

  9. pom配置项目build jar 包含源码的配置

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

  10. MySQL导入及导出数据库

    一.数据库导入 背景:已经从A机器把SQL文件导出,现在需要将sql文件导入B机器(两台机器都是Linux系统) 将sql文件上传到B机器,然后在B机器命令行执行以下命令(不用进入到数据库) 前提是t ...