cogs 721. [SDOI2007] 线性方程组
721. [SDOI2007] 线性方程组
★★ 输入文件:gaess.in
输出文件:gaess.out
简单对比
时间限制:1 s 内存限制:128 MB
- 【问题描述】
- 已知 n 元线性一次方程组。
a1,1x1+a1,2x2+…+a1,nxn=b1
a2,1x1+a2,2x2+…+a2,nxn=b2
………………
an,1x1+an,2x2+…+an,nxn=bn
其中: n<=50.系数是整数,绝对值<=100 , bi的值都是正整数且<300。
编程任务:
根据输入的数据,编程输出方程组的解的情况。
【输入】(gaess.in)
第一行,未知数的个数。以下n行n+1列:分别表示每一格方程的系数及方程右边的值。
n
a1,1a1,2…a1,nb1
a2,1a2,2…a2,nb2
…………
an,1an,2…an,nbn
【输出】(gaess.out)
如果方程组无实数解输出−1 ;
如果有无穷多实数解,输出 0 ;
如果有唯一解,则输出解(小数点后保留两位小数,如果解是0,则不保留小数)
【样例输入】
3
2 -1 1 1
4 1 -1 5
1 1 1 0
【样例输出】
x1=1.00
x2=0
x3=-1.00
2017/03/22新加3组数据 by rapiz
/*高斯消元求解线性方程组*/
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
#define N 100
#define eps (1e-8)
int n;double a[N][N];
int main(){
freopen("gaess.in", "r", stdin);
freopen("gaess.out", "w", stdout);
//freopen("cola.txt","r",stdin);
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 tmp=a[i][i];
for(int j=;j<=n+;j++)a[i][j]/=tmp;
for(int j=;j<=n;j++)
if(i!=j){
double tmp=a[j][i];
for(int k=;k<=n+;k++)a[j][k]-=a[i][k]*tmp;
}
}
int imp=,ult=;
for(int i=;i<=n;i++){
int j=;
while(fabs(a[i][j])<eps&&j<=n+)j++;
if(j>n+)ult=;
else if(j==n+)imp=;
}
if(imp){printf("-1");return ;}
if(ult){printf("");return ;}
for(int i=;i<=n;i++){
if(fabs(a[i][n+])<eps)printf("x%d=0\n",i);
else printf("x%d=%.2lf\n",i,a[i][n+]);
}
}
cogs 721. [SDOI2007] 线性方程组的更多相关文章
- COGS 723. [SDOI2007] 超级数组
★★☆ 输入文件:arr.in 输出文件:arr.out 简单对比 时间限制:1 s 内存限制:3 MB Source: SDOI2007 Day2[问题描述] 一般的数组大家都经常 ...
- 高斯消元和高斯约旦消元 Gauss(-Jordan) Elimination
高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵. 在讲算法前先介绍些概念 矩阵的初等变换 矩阵的初等变换又分为矩阵的初等行变换和矩阵的初等列变换 ...
- BZOJ 1013 cogs 1845 [JSOI2008]球形空间产生器sphere
题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产 ...
- matlab 求解线性方程组之LU分解
线性代数中的一个核心思想就是矩阵分解,既将一个复杂的矩阵分解为更简单的矩阵的乘积.常见的有如下分解: LU分解:A=LU,A是m×n矩阵,L是m×m下三角矩阵,U是m×n阶梯形矩阵 QR分解: 秩分解 ...
- 【原创】开源Math.NET基础数学类库使用(06)直接求解线性方程组
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- 【COGS 254】【POI 2001】交通网络图
http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...
- hihoCoder 1303 数论六·模线性方程组
Description 求解模线性方程组, \(m_i\) 不互质. Sol 扩展欧几里得+中国剩余定理. 首先两两合并跟上篇博文一样. 每次通解就是每次增加两个数的最小公倍数,这对取模任意一个数都是 ...
- 【COGS】894. 追查坏牛奶
http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...
- hiho一下 第九十七周 数论六·模线性方程组
题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军 ...
随机推荐
- view上下抖动特效
shake.xml <?xml version="1.0" encoding="utf-8"?> <translate xmlns:andro ...
- 在Linux下搭建我的世界(Minecraft)服务器
最近薅了百度云双12的羊毛,1核2G一年150.突然想起以前大学整个宿舍通宵开黑挖泥土的岁月,所以刚好趁着这台服务器,打算自己搭建一个我的世界服务器,重温一下以前的感觉. 超详细Linux搭建Java ...
- uboot移植添加nfs支持
手头6410开发板uboot(基于2011.06)其他功能包括ping和tftp都执行正常,唯独缺少nfs. 只需要在其配置文件(每个开发板文件通常名称不同,include/configs/*6410 ...
- 数据结构ADT是什么
抽象数据类型的缩写 abstract data type .表示数据结构的抽象模型.数据结构是一个数据概念的定义,通过各种工具对数据结构的概念类型的描述称之为抽象数据类型,简单地说是指一个数学模型以及 ...
- zabbix haproxy 监控
摘自: http://www.tuicool.com/articles/JrYNNrm 写的非常好,步步紧逼,环环相扣.直到成功! 文章首发站点:OpensGalaxy 这是一个HAProxy的zab ...
- 【Lintcode】122.Largest Rectangle in Histogram
题目: Given n non-negative integers representing the histogram's bar height where the width of each ba ...
- bzoj 3796 Mushroom追妹纸 —— 后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 先把三个串拼在一起,KMP 求 s1 , s2 中每个位置和 s3 的匹配情况: 注意 ...
- Floyd(稠密图,记录路径)
#include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib> #i ...
- JQuery Mobile+cordova构建一个Android项目
1.安装Android开发环境 Android开发环境的安装,现在主要是由于不能访问谷歌站点,在windows下在host文件中添加一个对应的74.125.195.190 dl-ssl.goo ...
- C#操作SQL Server中的Image类型数据
该例子是一个对SQL Server数据类型的一个操作例子,具有写入.读取功能. 1:准备数据库 1)创建数据库 Test 2)创建表 Table_1 (分别有2个字段:id(Int).photo(Im ...