题目背景

Gauss消元

题目描述

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

输入输出格式

输入格式:

第一行,一个正整数 nn

第二至 n+1n+1行,每行 n+1n+1 个整数,为a_1, a_2 \cdots a_na1​,a2​⋯an​ 和 bb,代表一组方程。

输出格式:

共n行,每行一个数,第 ii行为 x_ixi​ (保留2位小数)

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

输入输出样例

输入样例#1: 复制

3
1 3 4 5
1 4 7 3
9 3 2 2
输出样例#1: 复制

-0.97
5.18
-2.39

说明

1 \leq n \leq 100, \left | a_i \right| \leq {10}^4 , \left |b \right| \leq {10}^41≤n≤100,∣ai​∣≤104,∣b∣≤104

题解

这个东西从寒假拖到现在qwq

大概是自己变强了吧,觉得写起来蛮轻松的qwq

 /*
qwerta
P3389 【模板】高斯消元法 Accepted
100
代码 C++,0.95KB
提交时间 2018-11-02 07:49:21
耗时/内存 36ms, 800KB
*/
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double a[][];
bool sf[];
int pos[];
double ans[];
int main()
{
//freopen("a.in","r",stdin);
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=;i<=n;++i)
for(int j=;j<=n+;++j)
cin>>a[i][j];
for(int s=;s<=n;++s)
{
int mac=,macc=-1e4-;//mac记录系数绝对值最大的行号,macc记录绝对值
for(int i=;i<=n;++i)
if(!sf[i])//如果这一行没有被选过
{
if(abs(a[i][s])>macc)
{
mac=i,
macc=a[i][s];
}
}
if(abs(a[mac][s])<1e-){cout<<"No Solution";return ;}//绝对值最大的系数为0,则无解
double c=a[mac][s];//c为最大行第一个非零项的系数
pos[s]=mac;//第s个未知数的结果在第mac行
sf[mac]=;//打个被选过的标记
for(int j=s;j<=n+;++j)//先把最大行化简
{
a[mac][j]/=c;
}
for(int i=;i<=n;++i)
if(i!=mac)
{
double c=a[i][s]/a[mac][s];
for(int j=s;j<=n+;++j)
a[i][j]-=a[mac][j]*c;//把第i行的首项化到跟mac行一样,再减掉mac行的当前项
}
/*
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n+1;++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
*/
}
for(int i=;i<=n;++i)
ans[i]=a[pos[i]][n+];//取解
for(int i=;i<=n;++i)
printf("%.2f\n",ans[i]);
return ;
}

(反正也不考裸题 难的又看不出来 不知道我写个什么玩意儿

「LuoguP3389」【模板】高斯消元法的更多相关文章

  1. Note -「计算几何」模板

      尚未完整测试,务必留意模板 bug! /* Clearink */ #include <cmath> #include <queue> #include <cstdi ...

  2. 「BJWC2010」模板严格次小生成树

    题目描述 小 \(C\) 最近学了很多最小生成树的算法,\(Prim\) 算法.\(Kruskal\) 算法.消圈算法等等.正当小\(C\)洋洋得意之时,小\(P\)又来泼小\(C\)冷水了.小\(P ...

  3. Solution -「LOCAL」模板

    \(\mathcal{Description}\)   OurOJ.   给定一棵 \(n\) 个结点树,\(1\) 为根,每个 \(u\) 结点有容量 \(k_u\).\(m\) 次操作,每次操作 ...

  4. 「luogu3380」【模板】二逼平衡树(树套树)

    「luogu3380」[模板]二逼平衡树(树套树) 传送门 我写的树套树--线段树套平衡树. 线段树上的每一个节点都是一棵 \(\text{FHQ Treap}\) ,然后我们就可以根据平衡树的基本操 ...

  5. 「luogu3402」【模板】可持久化并查集

    「luogu3402」[模板]可持久化并查集 传送门 我们可以用一个可持久化数组来存每个节点的父亲. 单点信息更新和查询就用主席树多花 一个 \(\log\) 的代价来搞. 然后考虑如何合并两个点. ...

  6. SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  7. Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门

      进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...

  8. 「C++」理解智能指针

    维基百科上面对于「智能指针」是这样描述的: 智能指针(英语:Smart pointer)是一种抽象的数据类型.在程序设计中,它通常是经由类型模板(class template)来实做,借由模板(tem ...

  9. spring cloud 入门,看一个微服务框架的「五脏六腑」

    Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组 ...

随机推荐

  1. EAI G4-lidar ROS配置

    (1)使用命令创建 ydlidar_ws 工作空间,并将 G4 资料包内的 ROS 驱动包 ydlidar 下载到ydlidar_ws/src 目录下,切换到 ydlidar_ws 工作空间下并重新进 ...

  2. MySQL数据表导出某条记录

    请按照步骤导出,否则可能会报错: ERROR (HY000): The MySQL server is running with the --secure-file-priv option so it ...

  3. oracle中v$sga_target_advice的用途

    v$sga_target_advice:该视图可用于建议SGA大小设置是否合理.   SELECT a.sga_size,--sga期望大小          a.sga_size_factor,-- ...

  4. python学习(七)字典学习

    #!/usr/bin/python # 字典 # 当时学java的时候, 语言基础就学了好久, 然后是各种API, 最后才是集合 # 键值对, 可变 # 1. 映射操作 D = {'food' : ' ...

  5. hadoop修改主机名遇到的坑

    正确的修改方式 CentOS修改主机名(hostname) 需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常.首先切换到r ...

  6. Linux系统调用及用户编程接口(API)

    系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组"特殊"接口,用户程序能够通过这组"特殊"接口来获得操作系统内核提供的服务.比如用户能够通过进程控制相 ...

  7. python 基础 2.2 if流程控制(二)

    一. if  else   1.逻辑值(bool)包含了两个值: ----True:表示非空的值,比如:string ,tuple,list,set,dictonary,所有非空的序列. -----F ...

  8. 1930: [Shoi2003]pacman 吃豆豆

    1930: [Shoi2003]pacman 吃豆豆 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1969  Solved: 461[Submit][ ...

  9. 【BZOJ3611】[Heoi2014]大工程 欧拉序+ST表+单调栈

    [BZOJ3611][Heoi2014]大工程 Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道.  我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶 ...

  10. struts2中拦截器与过滤器之间的区别

    首先是一张经典的struts2原理图 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) ...