news 2026/4/28 15:46:43

《P2455 [SDOI2006] 线性方程组》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P2455 [SDOI2006] 线性方程组》

题目描述

已知 n 元线性一次方程组。

⎩⎨⎧​a1,1​x1​+a1,2​x2​+⋯+a1,n​xn​=b1​a2,1​x1​+a2,2​x2​+⋯+a2,n​xn​=b2​⋯an,1​x1​+an,2​x2​+⋯+an,n​xn​=bn​​

请根据输入的数据,编程输出方程组的解的情况。

输入格式

第一行输入未知数的个数 n。
接下来 n 行,每行 n+1 个整数,表示每一个方程的系数及方程右边的值。

输出格式

如果有唯一解,则输出解。你的结果被认为正确,当且仅当对于每一个 xi​ 而言结果值与标准答案值的绝对误差或者相对误差不超过 0.01。

如果方程组无解输出 −1; 如果有无穷多实数解,输出 0;

输入输出样例

输入 #1复制

3 2 -1 1 1 4 1 -1 5 1 1 1 0

输出 #1复制

x1=1.00 x2=0.00 x3=-1.00

说明/提示

【数据范围】
对于 100% 的数据,1≤n≤50。∀1≤i,j≤n,有 ∣ai,j​∣≤100,∣bi​∣≤300。

代码实现:

#include <iostream> #include <algorithm> #include<cmath> #include<cstring> #include<cstdio> #include<cstdlib> #include<vector> #include<iomanip> #define sq(x)(x)*(x) #define f1(i,n) for (i=1;i<=n;i++) #define f0(i,n) for (i=0;i<n;i++) #define fr(i,x,y) for (i=x;i<=y;i++) #define fb(i,y,x) for (i=y;i>=x;i--) using namespace std; double mat[55][55], res[55]; int n, i, j, k; bool flag1=0, flag2=0; int main() { scanf("%d",&n); f1(i,n) { f1(j,n+1) { scanf("%lf",&mat[i][j]); } } int col=1; f1(i,n) { if (col>n) break; fr(j,i,n) { if (abs(mat[j][col])>abs(mat[i][col])) { f1(k,n+1) swap(mat[i][k], mat[j][k]); } } if (abs(mat[i][col])<1e-8) { flag2=1; col++; i--; continue; } fr(j,i+1,n) { double t=mat[j][col]/mat[i][col]; fr(k,col,n+1) { mat[j][k]-=mat[i][k]*t; } } col++; } col=n; fb(i,n,1) { if (col<1) break; if (abs(mat[i][col])<1e-8) continue; f1(j,i-1) { double t=mat[j][col]/mat[i][col]; fr(k,col,n+1) { mat[j][k]-=mat[i][k]*t; } } col--; if (abs(mat[i][col])>1e-8) i++; } fb(i,n,1) { flag1=0; f1(j,n) if (abs(mat[i][j])>1e-8) flag1=1; if (flag1==0 && abs(mat[i][n+1])>1e-8) { puts("-1"); return 0; } if (abs(mat[i][i])>1e-8 && !flag2) res[i]=mat[i][n+1]/mat[i][i]; } if (flag2==1) { puts("0"); return 0; } f1(i,n) { if (abs(res[i])<5e-3) printf("x%d=0\n",i); else printf("x%d=%.2f\n",i,res[i]); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 1:35:48

会计职称考试照片大小标准是多少?快速压缩方法分享

报考会计职称时&#xff0c;不少人卡在照片上传这一步&#xff1a;要么提示照片太大无法提交&#xff0c;要么格式不符合要求&#xff0c;找压缩工具又怕下载的软件有广告、操作复杂。会计职称考试报名照片有明确规范&#xff1a;背景需为白色&#xff0c;采用近期 1 寸免冠证件…

作者头像 李华
网站建设 2026/4/22 13:02:15

GIF动画在线制作工具怎么选?GIF中文网免费动图制作全攻略

做自媒体配图、电商主图或课件动图时&#xff0c;总遇到GIF制作复杂、转换后格式不兼容&#xff0c;甚至动图太大无法上传的问题&#xff0c;浪费大量时间还没效果。今天给大家推荐5分钟快速上手的在线GIF工具&#xff08;https://www.gif.cn/&#xff09; ——GIF 中文网&…

作者头像 李华
网站建设 2026/4/19 6:31:21

我常用的一个电商数据采集软件,低代码爬虫

最近DeepSeek大火&#xff0c;对话质量之高一度超过ChatGPT、Claude等主流海外模型。你知道什么决定了大模型训练结果的好坏吗?除了算法外&#xff0c;训练数据的质和量起着决定性作用&#xff0c;而很多AI公司用到的训练数据就是利用爬虫技术从全网抓取的&#xff0c;这也是O…

作者头像 李华
网站建设 2026/4/23 17:18:02

计算机毕设java疫情期间物资分配管理系统 基于Java的疫情期间物资分配与监管系统 疫情期间物资调配管理系统的设计与实现

计算机毕设java疫情期间物资分配管理系统714499 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。在疫情的特殊背景下&#xff0c;物资分配管理的高效性与准确性显得尤为重要。传统…

作者头像 李华
网站建设 2026/4/22 17:24:08

适配多行业场景,常用的内外网文件传输系统怎么选?

内外网文件传输系统是指能在企业内网与外网、不同安全域隔离网络间&#xff0c;实现文件安全、可控、高效传输的专用工具或平台&#xff0c;核心解决网络隔离与数据流动的矛盾。常用的内外网文件传输系统种类繁多&#xff0c;适配不同业务场景与安全需求&#xff0c;选择合适的…

作者头像 李华
网站建设 2026/4/23 11:33:33

1998-2025年中国县域数字基础设施水平

数字基础设施水平是一个衡量国家或地区数字化“底座”坚实程度与服务能力的综合指标。一个地区的数字基础设施水平越高&#xff0c;意味着其各类信息“高速公路”越宽、算力“引擎”越强&#xff0c;从而能更高效地支撑数字经济发展、社会治理创新及百姓的智慧生活体验&#xf…

作者头像 李华