【洛谷P3389】【模板】高斯消元

题目链接

题目描述

给定一个线性方程组,对其求解

输入输出格式

输入格式:

第一行,一个正整数 n

第二至 n+1行,每行 n+1 个整数,为a1, a2 .....an 和 b,代表一组方程。

输出格式:

共n行,每行一个数,第 i行为 xi (保留2位小数)

如果不存在唯一解,在第一行输出"No Solution".

输入输出样例

输入样例#1:
3
1 3 4 5
1 4 7 3
9 3 2 2
输出样例#1:
-0.97
5.18
-2.39

说明

1n100,ai104,b104

 


 

 

可以说是高斯消元的模板题了。

高斯消元的基本步骤大概是:找最大主元-->消元直到消成上三角-->回代求解。

各种情况的判断方法:

无解:存在一行ai=0(1≤i≤n)且b!=0。

无数解:存在一行(包括系数)全为0。

唯一解:恰好能消成n行的上三角。

代码:

 

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 typedef double Cu;
 5 int n;
 6 int read(){
 7     int ans=0,f=1;char c=getchar();
 8     while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
 9     while(c>='0'&&c<='9'){ans=ans*10+c-48;c=getchar();}
10     return ans*f;
11 }
12 Cu fabs(Cu a){return a>0?a:-a;}
13 Cu mp[105][105];
14 void swap(int k1,int k2){
15     for(int i=1;i<=n+1;i++){
16         Cu t=mp[k1][i];
17         mp[k1][i]=mp[k2][i];mp[k2][i]=t;
18     }
19 }
20 void gauss(){
21     for(int k=1;k<n;k++){
22         int maxr=k;
23         for(int i=k;i<=n;i++)
24             if(fabs(mp[i][k])>fabs(mp[maxr][k]))maxr=i;//找最大主元
25         if(k!=maxr)swap(k,maxr);
26         for(int i=k+1;i<=n;i++){
27             bool fl=0;
28             Cu temp=mp[i][k]/mp[k][k];
29             for(int j=k;j<=n+1;j++){
30                 mp[i][j]-=mp[k][j]*temp;
31                 if(mp[i][j])fl=1;
32             }
33             if(!fl){printf("No Solution");exit(0);}//判断是否有唯一解
34         }
35     }
36 }
37 int main(){
38     n=read();
39     for(int i=1;i<=n;i++)
40         for(int j=1;j<=n+1;j++)
41             mp[i][j]=read();
42     gauss();
43     for(int i=n;i>=1;i--){
44         for(int j=i+1;j<=n;j++)mp[i][n+1]-=mp[i][j]*mp[j][n+1];//回代
45         mp[i][n+1]/=mp[i][i];//除以系数
46     }
47     for(int i=1;i<=n;i++)printf("%.2f\n",mp[i][n+1]);
48     return 0;
49 }
高斯消元模板

 

转载于:https://www.cnblogs.com/JKAI/p/7805978.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序上传的视频显示封面 我是阿里云oss的实现

我们一般用wx.chooseVideo拍摄视频或从手机相册中选视频&#xff0c;然后上传到后台存储空间。 但是给用户显示视频列表的时候&#xff0c;需要视频封面额。 阿里oss地址&#xff1a;https://help.aliyun.com/document_detail/64555.html?spm5176.11065259.1996646101.searc…

Android 仿微信多张图片选择器,适配android10系统,open failed: EACCES (Permission denied)

实现效果 只需引入模块&#xff0c;比起依赖&#xff0c;更方便自定义 implementation project(:imagepicker) //图片加载 implementation com.github.bumptech.glide:glide:4.11.0 初始化即可使用 private void initImagePicker() {ImagePicker imagePicker ImagePicker.g…

前端学习(2640):懂代码之登录页login.vue存入用户信息

<template><div class"login-wrap"><div class"ms-login"><div class"ms-title">后台管理系统</div><!--1定义参数类型 2定义路由规则 3使用ref去进行指向 --><el-form :model"param" :rules&…

js将字符串 YYMMDDHHmmss 转化为 date类型

微信支付的回调参数time_end为日期字符串。 需求&#xff1a;将20190523101156转化为转换为Date日期格式Thu May 23 2019 10:11:56 GMT0800 (中国标准时间) const str2date (dateString)> {const pattern /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;return new Dat…

This relative module was not found ./cptable webpack

在使用xlsx库的时候遇到的报错。 This relative module was not found: * ./cptable in ./node_modules/xlsx-style/dist/cpexcel.js记录解决方法&#xff0c;我是使用webpack进行配置的。 在chainWebpack里面增加一行代码&#xff0c;重新编译&#xff0c;即可。 config.ext…

工作155:首页样式调整第二次

<el-card><h1 style"float: left;margin-top: 34px;margin-left: 32px;">我的订单</h1><el-button size"mini" style"float: right;margin-top: 14px;margin-right: 10px;" type"primary" click"ListClick…

关于CaciiEZ端口流量阀值报警的设置

作者:邓聪聪 环境&#xff1a;CactiEZ v10.1 为了更高效的发现问题&#xff0c;在非工作期间&#xff0c;公司的网络可能会出现一些故障&#xff0c;为了及时解决问题&#xff0c;所以做了一个流量监控&#xff0c;并以邮件的方式发送流量异常的端口&#xff0c;以便及时了解状…

微信开发 getUserInfo:fail tunneling socket could not be established, cause=connect ECONNREFUSED

微信开发过程中&#xff0c;突然遇到一个奇怪的问题&#xff1a; 解决办法&#xff1a; 找到开发工具中 “工具 - 设置 - 代理设置”&#xff0c;选择即可不使用任何代理。

Socket常用语法与socketserver实例

1》Socket相关&#xff1a; 1>Socket Families(地址簇): socket.AF_UNIX   本机进程间通信 socket.AF_INET   IPV4  socket.AF_INET6   IPV6 2>Socket Types: socket.SOCK_STREAM   #for tcp socket.SOCK_DGRAM   #for udp  socket.SOCK_RAW …

重新记录一下微信后台的配置

1、打开开发的基本配置&#xff0c;成为开发者 2、启用开发者密码 3、看一下自己的公众号id 4、记录自己的AppID、AppSecret

vue2.0 如何自定义组件(vue组件的封装)

一、前言 之前的博客聊过 vue2.0和react的技术选型&#xff1b;聊过vue的axios封装和vuex使用。今天简单聊聊 vue 组件的封装。 vue 的ui框架现在是很多的&#xff0c;但是鉴于移动设备的复杂性&#xff0c;兼容性问题突出。像 Mint-UI 等说实话已经很不错了&#xff0c;但是坑…

又双叒叕 - 中国汉字的奇妙

四个字组成的汉字&#xff1a; 又双叒叕【zhuo】 屮艸芔茻【mǎng】 火炎焱燚【yi】 一二三亖【si】 土圭垚㙓【dui】 口吕品田【tian】 水沝淼㵘【man】 日昌晶【liu】 木林森【gua】 月朋朤【lang】 金鍂鑫鑫【繁体】【xin】

小程序 获取当前所在地理位置 城市 信息

需求&#xff1a;在小程序首页需要显示用户所在城市。 解决方案&#xff1a;使用wx.getLocation获取经纬度坐标&#xff0c;再使用微信小程序JavaScript SDK的地址逆解析方法reverseGeocoder&#xff0c;就可以完美搞定。 微信小程序JavaScript SDK官方地址 https://lbs.qq.c…

php用ajax方式实现四级联动

使用ajax方式实现了下简单的 四级联动&#xff0c; 数据库&#xff1a; 以下为前台代码&#xff1a; 1 <!DOCTYPE html>2 <html>3 <head>4 <title>5 四级联动6 </title>7 <meta charset"utf-8">8 <s…

OI回忆录——一个过气OIer的制杖历程

初中 初一参加学校信息学选修课&#xff0c;一周一节课&#xff0c;学pascal。  初一寒假&#xff08;大约是&#xff09;入选&#xff08;其实是钦定吧&#xff09;当时加上我只有3人的校队&#xff08;我当然是最弱的一个。  当时甚至有幸得到叉姐授课&#xff08;现在才…

工作157:动态路由

第一步 route里面加一个 第二步跳转

前端学习(2644):懂代码之header表头页之折叠功能

第一步 header.vue <!-- 折叠按钮 --><div class"collapse-btn" click"collapseChage"><i v-if"!collapse" class"el-icon-s-fold"></i><i v-else class"el-icon-s-unfold"></i></d…

简单使用CXF实现webserver(rs的独立发布)

简单使用cxf_rs的方式实现webserver 1创建maven project java项目 2,在maven文件中导入相关依赖 <dependencies>    <!--使用 CXF 的RS开发模式 --><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxrs&…

工作158:vue里面为什么要加key

没有key <div id"app"><div><input type"text" v-model"name"><button click"add">添加</button></div><ul><li v-for"(item, i) in list"><input type"checkbox&…