题目背景

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. Synchronized修饰静态变量和普通变量的区别

    这里主要涉及到类对象(static方法),对象方法(非static方法) 我们知道,当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例): ...

  2. SpringBoot学习——运行原理学习及自定义Starter pom

    例如:pom文件 导入redis jar包 springboot怎么识别和集成? https://blog.csdn.net/flygoa/article/details/68484439 https ...

  3. HDFS源码分析DataXceiver之整体流程

    在<HDFS源码分析之DataXceiverServer>一文中,我们了解到在DataNode中,有一个后台工作的线程DataXceiverServer.它被用于接收来自客户端或其他数据节 ...

  4. 字符串查找strpos()函数用法

    #如果id=3 在字符串中查找出3是否存在.$str="2,12,33,22,55"; if(strpos(','.$id.',',','.$str.',')!==FALSE){ ...

  5. [转]Unity3D Editor 编辑器简易教程

    Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...

  6. KVC基本使用

    首先,创建两个类.person类和book类.如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/ ...

  7. EasyPlayerPro Windows播放器实时流进行本地缓冲区即时回放功能实现

    背景描述 参照国内视频监控行业监控软件,实现当前视频的即时回放功能,例如: 监控人员发现刚刚的某个视频点有可疑,就像录像回放一样,想倒回去看一下,但又不想切换到录像回放界面, 此处就体现即时回放的价值 ...

  8. EasyDSS RTMP流媒体解决方案之Windows服务安装方案

    Windows服务安装 EasyDSS_Solution流媒体解决方案,可以通过start一键启动.在实际应用中,我们希望可以设置成系统服务,那么下面我将会介绍,如何在windows中将流媒体解决方案 ...

  9. django url匹配过程

    ROOT_URLCONF root URLconf module urlpatterns “include” other URLconf modules chops off whatever part ...

  10. Java中String的设计

    String应用简介 前言 String字符串在Java应用中使用非常频繁,只有理解了它在虚拟机中的实现机制,才能写出健壮的应用,本文使用的JDK版本为1.8.0_111. 常量池 Java代码被编译 ...