【luogu P3389 高斯消元法】 模板
题目链接:
gauss消元求线性方程组的解。
这道题对于多解和无解都输出No solution
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
const int maxn = ;
const double eps = 1e-;
double A[maxn][maxn], ans[maxn];
int n;
int main()
{
scanf("%d",&n);
for(int i = ; i <= n; i++)
for(int j = ; j <= n+; j++)
scanf("%lf", &A[i][j]);
for(int i = ; i <= n; i++)
{
int p = i;
for(int j = i + ; j <= n; j++)
if(fabs(A[j][i]) > fabs(A[p][i])) p = j;
for(int j = ; j <= n + ; j++) swap(A[p][j],A[i][j]); if(fabs(A[i][i]) < eps) continue;
double div = A[i][i];
for(int j = ; j <= n + ; j++) A[i][j]/=div;
for(int j = ; j <= n; j++)
{
if(i != j)
{
double div = A[j][i];
for(int k = ; k <= n + ; k++) A[j][k] -= A[i][k]*div;
}
}
}
int NoSolution = , ManySolution = ;
for(int i = ; i <= n; i++)
{
int Nonum = , Manynum = ;
for(int j = ; j <= n + && fabs(A[i][j]) < eps; j++)
Nonum++,Manynum++;
if(Manynum > n) ManySolution = ;
if(Nonum == n) NoSolution = ;
}
if(NoSolution) {printf("No Solution");return ;}
if(ManySolution) {printf("No Solution");return ;}
for(int i = n; i >= ; i--)
{
ans[i] = A[i][n+];
for(int j = i - ; j >= ; j--)
{
A[j][n+] -= ans[i] * A[j][i];
A[j][i] = ;
}
}
for(int i = ; i <= n; i++)
printf("%.2lf\n",ans[i] + eps);
return ;
}
【luogu P3389 高斯消元法】 模板的更多相关文章
- 洛谷P3389 【模板】高斯消元法
P3389 [模板]高斯消元法 题目背景 Gauss消元 题目描述 给定一个线性方程组,对其求解 输入输出格式 输入格式: 第一行,一个正整数 n 第二至 n+1行,每行 n+1 个整数,为a1,a ...
- 洛谷——P3389 【模板】高斯消元法
P3389 [模板]高斯消元法 以下内容都可省略,直接转大佬博客%%% 高斯消元总结 只会背板子的蒟蒻,高斯消元是什么,不知道诶,看到大佬们都会了这个水题,蒟蒻只好也来切一切 高斯消元最大用途就是解多 ...
- Luogu 3390 【模板】矩阵快速幂 (矩阵乘法,快速幂)
Luogu 3390 [模板]矩阵快速幂 (矩阵乘法,快速幂) Description 给定n*n的矩阵A,求A^k Input 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵 ...
- Luogu 3375 【模板】KMP字符串匹配(KMP算法)
Luogu 3375 [模板]KMP字符串匹配(KMP算法) Description 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来 ...
- Luogu 3371【模板】单源最短路径
Luogu 3371[模板]单源最短路径 第一次写博客用图论题来试一试 接下来是正文部分 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包 ...
- [luogu P3806] 【模板】点分治1
[luogu P3806] [模板]点分治1 题目背景 感谢hzwer的点分治互测. 题目描述 给定一棵有n个点的树 询问树上距离为k的点对是否存在. 输入输出格式 输入格式: n,m 接下来n-1条 ...
- [luogu P3369]【模板】普通平衡树(Treap/SBT)
[luogu P3369][模板]普通平衡树(Treap/SBT) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删 ...
- luogu 3806 【模板】点分治
luogu 3806 [模板]点分治 给定一棵有n个点的树,有m个询问,每个询问树上距离为k的点对是否存在.树的权值最多不超过c.n<=10000,m<=100,c<=1000,K& ...
- 数组splay ------ luogu P3369 【模板】普通平衡树(Treap/SBT)
二次联通门 : luogu P3369 [模板]普通平衡树(Treap/SBT) #include <cstdio> #define Max 100005 #define Inline _ ...
随机推荐
- oracle客户端中文乱码问题的解决
1 查看服务器端编码 select userenv('language') from dual; 我实际查看到的结果为: USERENV('LANGUAGE') ------------------- ...
- js 用简单案例举模态对话框弹出
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 深入理解JavaScript系列(17):面向对象编程之概论
介绍 在本篇文章,我们考虑在ECMAScript中的面向对象编程的各个方面(虽然以前在许多文章中已经讨论过这个话题).我们将更多地从理论方面看这些问题. 特别是,我们会考虑对象的创建算法,对象(包括基 ...
- jQuery easyUI 的combogrid进行模糊匹配
$(function(){ $('#search_hospitalName').combogrid({ mode : 'remote',//远程连接方式 //fitColumns:true,//自动大 ...
- C#异步编程模型
什么是异步编程模型 异步编程模型(Asynchronous Programming Model,简称APM)是C#1.1支持的一种实现异步操作的编程模型,虽然已经比较“古老”了,但是依然可以学习一下的 ...
- 封装http请求键值对的js函数
//封装http请求键值对的函数 function Map() { this.keys = new Array(); this.data = {}; //添加键值对 this.put = functi ...
- python高阶函数sorted
原文 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因 ...
- 洛谷P1941 飞扬的小鸟(背包 dp)
题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/s ...
- 9th week -the history of program 1950~2020
We already know that programming language is a formal language designed to communicate instructions ...
- 函数进阶3 —— 生成器、yield from
今天我们在进一步了解一下,生成器. ①: def func(): print('这是函数func') return '函数func' func() 结果是 这是函数func ②: def func1( ...