洛谷P2455 [SDOI2006]线性方程组(高斯消元)
题目描述
已知n元线性一次方程组。
其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmqqdd提出题目描述的说明)(redbag:是mqd自己要我写的= =)[/color][/b].
编程任务:
根据输入的数据,编程输出方程组的解的情况。
输入输出格式
输入格式:
第一行:未知数的个数。以下n行n+1列:分别表示每一格方程的系数及方程右边的值。
输出格式:
如果方程组无实数解输出-1;
如果有无穷多实数解,输出0;
如果有唯一解,则输出解(小数点后保留两位小数)。
输入输出样例
3
2 -1 1 1
4 1 -1 5
1 1 1 0
x1=1.00
x2=0
x3=-1.00
裸的高斯消元
不过这题真的是,往死里卡精度。。
注意先判无解,再判无穷
// luogu-judger-enable-o2
#include<cstdio>
#include<algorithm>
const double eps = 1e-;
inline int read() {
char c = getchar(); int x = , f = ;
while(c < '' || c > '') { if(c == '-')f = -; c = getchar(); }
while(c >= '' && c <= '') x = x * + c - '', c = getchar();
return x * f;
}
const int MAXN = ;
int N;
double a[MAXN][MAXN];
double Ans[MAXN];
double fabs(double x) {return x < ? -x : x;}
void Gauss() {
for(int i = ; i <= N; i++) {
int mx = i;
for(int j = i + ; j <= N; j++)
if(fabs(a[j][i]) > fabs(a[mx][i])) mx = j;
if(mx != i) std::swap(a[mx], a[i]);
if(fabs(a[i][i]) >= eps)
for(int j = ; j <= N; j++) {
if(i == j) continue;
double temp = a[j][i] / a[i][i];
for(int k = ; k <= N + ; k++)
a[j][k] -= temp * a[i][k];
}
}
int NoSolution = , ManySolution = ;
for(int i = ; i <= N; i++) {
int num = ;
for(int j = ; j <= N + ; j++)
if(a[i][j] == ) num ++;
else break;
if(num == N + ) ManySolution = ;
if(num == N && a[i][N+] != ) NoSolution = ;
}
if(NoSolution) {printf("-1");return ;}
if(ManySolution) {printf("");return ;}
for(int i = N; i >= ; i--) {
Ans[i] = a[i][N+] / a[i][i];
for(int j = i; j >= ; j--)
a[j][N+] -= a[j][i] * Ans[i];
}
for(int i = ; i <= N; i++)
printf("x%d=%.2lf\n",i,Ans[i]);
}
int main() {
#ifdef WIN32
freopen("a.in", "r", stdin);
#endif
N = read();
for(int i = ; i <= N; i++)
for(int j = ; j <= N + ; j++)
a[i][j] = read();
Gauss();
return ;
}
洛谷P2455 [SDOI2006]线性方程组(高斯消元)的更多相关文章
- 洛谷P2455 [SDOI2006]线性方程组
高斯消元模板 要求输出解的情况(无穷解/无解) 1. 之前写的丑陋代码 #include <iostream> #include <cstdio> #include <c ...
- 【洛谷P3389】(模板)高斯消元
对于高斯消元法求解线性方程组, 我的理解就类似于我们在做数学题时的加减消元法, 只是把它写成一个通用的程序运算过程 对于一个线性方程组,我们从左往右每次将一列对应的行以下的元通过加减消元消去, 每个元 ...
- 洛谷P4035 [JSOI2008]球形空间产生器(高斯消元)
洛谷题目传送门 球啊球 @xzz_233 qaq 高斯消元模板题,关键在于将已知条件转化为方程组. 可以发现题目要求的未知量有\(n\)个,题目却给了我们\(n+1\)个点的坐标,这其中必有玄机. 由 ...
- 洛谷2973 [USACO10HOL]赶小猪Driving Out the Piggi… 概率 高斯消元
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - 洛谷2973 题意概括 有N个城市,M条双向道路组成的地图,城市标号为1到N.“西瓜炸弹”放在1号城市,保证城 ...
- 洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)
题面 传送门(loj) 传送门(洛谷) 题解 模拟赛的时候只想出了高斯消元然后死活不知道怎么继续--结果正解居然就是高斯消元卡常? 首先有个比较难受的地方是它一个回合可能不止扣一滴血--我们得算出\( ...
- 【洛谷U20626】gemo 容斥 FWT 高斯消元
题目大意 给你一个无向图,有\(m\)个询问,每次给你一个点\(x\)和一个点集\(S\),问你从\(x\)开始走,每次从一个点随机的走到与这个点相邻的点,问你访问\(S\)中每个点至少一次的期望步数 ...
- 洛谷P4035 球形空间产生器 [JSOI2008] 高斯消元
正解:高斯消元 解题报告: 链接! 昂开始看到以为是,高斯消元板子题? 开始很容易想到的是,虽然是多维但是可以类比二维三维列出式子嘛 但是高斯消元是只能处理一元问题的啊,,,辣怎么处理呢 对的这就是这 ...
- 洛谷P3389 高斯消元 / 高斯消元+线性基学习笔记
高斯消元 其实开始只是想搞下线性基,,,后来发现线性基和高斯消元的关系挺密切就一块儿在这儿写了好了QwQ 先港高斯消元趴? 这个算法并不难理解啊?就会矩阵运算就过去了鸭,,, 算了都专门为此写个题解还 ...
- 洛谷P4783 【模板】矩阵求逆(高斯消元)
题意 题目链接 Sol 首先在原矩阵的右侧放一个单位矩阵 对左侧的矩阵高斯消元 右侧的矩阵即为逆矩阵 // luogu-judger-enable-o2 #include<bits/stdc++ ...
随机推荐
- js 请求单个文件 并验证扩展名
function suffix(file_name) { var three=file_name.split("."); ]; return last; } $('#btnSear ...
- js DOM 节点树 设置 style 样式属性
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- webpack学习(二)
时下很火的react项目多用到webpack+ES6,本文只实践webpack的打包功能,不涉及react. 1.新建项目 新建的项目,命令模式下切换到项目根路径,用npm init命令生成packa ...
- 玲珑杯#20 C 漆黑的太阳——莫队
题目:https://www.ifrog.cc/acm/problem/1155 题解:https://www.ifrog.cc/acm/solution/28 1.如何不重复计算一个值 自己想的是对 ...
- tomcat 热加载设置
找到tomcat项目的apache-tomcat-8.0.30\conf\context.xml,打开进行编辑,把Context项中加上 reloadable="true" < ...
- 明明引用了jquery,js还是报错
先引jquery,不然加载上一个js的时候jquery还没有加载 <script src="js/jquery-1.9.1.js" type="text/javas ...
- PAT_A1072#Gas Station
Source: PAT A1072 Gas Station (30 分) Description: A gas station has to be built at such a location t ...
- 【剑指Offer】45、扑克牌顺子
题目描述: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到 ...
- (13)处理静态资源(自定义资源映射)【从零开始学Spring Boot】
上面我们介绍了Spring Boot 的默认资源映射,一般够用了,那我们如何自定义目录? 这些资源都是打包在jar包中的,然后实际应用中,我们还有很多资源是在管理系统中动态维护的,并不可能在程序包中, ...
- [Javascript] Highlights from IO18 Javascript new features
Latest Javascript features, not supported by all broswers, but can use with babel. # try-catch-final ...