【luogu P2455 [SDOI2006]线性方程组】 题解
题目链接:https://www.luogu.org/problemnew/show/P2455
无解:最后一列对应元素不为0,前面全是0.
无穷解:一行全是0.
嗯...在消元过程中不要直接拿矩阵元素自己消,会把自己消成0.
1 #include <algorithm> 2 #include <cstdio> 3 #include <cmath> 4 #include <iostream> 5 using namespace std; 6 const int maxn = 200; 7 const double eps = 1e-7; 8 double A[maxn][maxn], ans[maxn]; 9 int n; 10 int main() 11 { 12 scanf("%d",&n); 13 for(int i = 1; i <= n; i++) 14 for(int j = 1; j <= n+1; j++) 15 scanf("%lf", &A[i][j]); 16 for(int i = 1; i <= n; i++) 17 { 18 int p = i; 19 for(int j = i + 1; j <= n; j++) 20 if(fabs(A[j][i]) > fabs(A[p][i])) p = j; 21 for(int j = 1; j <= n + 1; j++) swap(A[p][j],A[i][j]); 22 23 if(fabs(A[i][i]) < eps) continue; 24 double div = A[i][i]; 25 for(int j = 1; j <= n + 1; j++) A[i][j]/=div; 26 for(int j = 1; j <= n; j++) 27 { 28 if(i != j) 29 { 30 double div = A[j][i]; 31 for(int k = 1; k <= n + 1; k++) A[j][k] -= A[i][k]*div; 32 } 33 } 34 } 35 int NoSolution = 0, ManySolution = 0; 36 for(int i = 1; i <= n; i++) 37 { 38 int Nonum = 0, Manynum = 0; 39 for(int j = 1; j <= n + 1 && fabs(A[i][j]) < eps; j++) 40 Nonum++,Manynum++; 41 if(Manynum > n) ManySolution = 1; 42 if(Nonum == n) NoSolution = 1; 43 } 44 if(NoSolution) {printf("-1");return 0;} 45 if(ManySolution) {printf("0");return 0;} 46 for(int i = n; i >= 1; i--) 47 { 48 ans[i] = A[i][n+1]; 49 for(int j = i - 1; j >= 1; j--) 50 { 51 A[j][n+1] -= ans[i] * A[j][i]; 52 A[j][i] = 0; 53 } 54 } 55 for(int i = 1; i <= n; i++) 56 printf("x%d=%.2lf\n",i,ans[i] + eps); 57 return 0; 58 }
转载于:https://www.cnblogs.com/MisakaAzusa/p/8960935.html
【luogu P2455 [SDOI2006]线性方程组】 题解相关推荐
- 洛谷 P3389 【模板】高斯消元法 × 洛谷 P2455 [SDOI2006]线性方程组
一.传送门 https://www.luogu.com.cn/problem/P3389 https://www.luogu.com.cn/problem/P2455 二.代码 日--两道题合起来搞了 ...
- P2455 [SDOI2006]线性方程组
题目链接:点击这里 题目大意: 给定一个线性方程组,对其求解 题目分析: 高斯-约旦消元法 选择一个尚未被选过的未知数作为主元,选择一个包含这个主元的方程 通过加减消元,消掉其它方程中的这个未知数 重 ...
- 洛谷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 P2708 硬币翻转 题解
Luogu p2708题解 思路: 由于我们这个题目的长度不知道,所以我们不能一次性输入所有的硬币的状态,也许会爆数组(Ps:我没试过我不是知道).所以我们为了保险采取用getchar()一个一个读入 ...
- 【luogu P2169 正则表达式】 题解
题目链接:https://www.luogu.org/problemnew/show/P2169 tarjan缩点 + SPFA 缩完点之后加边注意别写错. 也可以不用建两个图,可以在一张图上判断是否 ...
- 【luogu P3959 宝藏】 题解
题目链接:https://www.luogu.org/problemnew/show/P3959 我只是心血来潮想学SA(考场上骗分总行吧). 这个题可以状压DP.爆搜+剪枝.有意思的还是随机化搜索( ...
- [Luogu]P1007 独木桥(C++题解)
文章目录 Part 0 独木桥 题目背景 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 Part 1 Part2 Part 3 核心代码 Part 4 AC代码: P ...
- [SDOI2006]线性方程组 高斯消元
板子题,注意消元的时候无解判断和常数项的操作 码: #include<iostream> #include<cstdio> #include<cmath> usin ...
最新文章
- 关于机器学习实战,那些教科书里学不到的12个“民间智慧”
- POJ-2584 T-Shirt Gumbo 最大流
- js input点击事件_Vue.js的旅程,简单的todo实例「602」
- 微信h5网页关闭分享以及关闭当前页面
- 阿里云发布vSphere虚拟机备份服务 ,网络带宽有限条件下依然能有效保护数据
- sinh_带有Python示例的math.sinh()方法
- oracle 11g跳过坏块,oracle 使用Dbms_Repair跳过坏块
- html盒子自动居中,css盒子怎么居中?
- pillow模块 (PIL) 生成验证码
- 微信 - 微信语音转发好友 / 朋友圈方法
- MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型
- 郑州大学计算机上机模拟题库,郑州大学VB考试模拟试题
- 利用metadata-extractor定向获取图片拍摄时间以及宽高
- 服务器无线组网,物联网无线组网介绍
- Js鼠标放上去图片变大变小
- 小程序华为手机canvas不显示问题
- 新媒体运营教程:线上线下用户转化的核心流程!
- oracle数据库 dmp文件,数据库DMP文件损坏怎么修复
- 【GPU Gems 学习笔记】Rendering Water Caustics
- 微信气泡主题设置_微信气泡主题怎么设置_微信气泡主题怎么设置方法_掌通手游...
热门文章
- Android实现更换皮肤功能
- Python 自动化教程(2) : Excel自动化:使用pandas库
- 〖产品思维训练白宝书 - 核心竞争力篇①〗- 产品经理 的核心竞争力解读
- Java并发包concurrent——ConcurrentHashMap
- 微光医疗/软件测试工程师实习面试
- 欢迎Fork我们的开源云手机项目--OPENVMI(Virtual Mobile Infrastructure)(VMI)
- PPT技能速成班学习笔记
- 何为Agile,何为Scrum
- PDPS软件:导出插枪文件功能(Gun Cloud)介绍与使用方法
- API+段子+美图+未来的视频+关注+python