高斯消元模板(pascal)

洛谷P3389评测

 1 program rrr(input,output);
 2 const
 3   eps=1e-8;
 4 var
 5   a:array[0..110,0..110]of double;
 6   n,i,j,k:longint;
 7   t:double;
 8 begin
 9    assign(input,‘r.in‘);assign(output,‘r.out‘);reset(input);rewrite(output);
10    readln(n);
11    for i:=1 to n do for j:=1 to n+1 do read(a[i,j]);
12    for i:=1 to n do
13       begin
14          k:=i;
15          for j:=i+1 to n do if abs(a[j,i])>abs(a[k,i]) then k:=j;
16          if abs(a[k,i])<eps then begin write(‘No Solution‘);close(input);close(output);halt; end;
17          for j:=i to n+1 do begin t:=a[i,j];a[i,j]:=a[k,j];a[k,j]:=t; end;
18          t:=a[i,i];for j:=i to n+1 do a[i,j]:=a[i,j]/t;
19          for j:=1 to n do
20             if j<>i then
21                begin
22                   t:=a[j,i];
23                   for k:=i to n+1 do a[j,k]:=a[j,k]-a[i,k]*t;
24                end;
25       end;
26    for i:=1 to n do writeln(a[i,n+1]:0:2);
27    close(input);close(output);
28 end.
时间: 2024-11-11 17:16:17

高斯消元模板(pascal)的相关文章

高斯消元 模板

照着czyuan的那个模板,手敲了一遍,存一下. 貌似今天一整天就看了一下高斯消元的知识,然后看了模板,又手敲了一遍. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #include <algorithm> 7 #define LL __int64 8 const int

高斯消元模板(kuangbin大神版本)

#include<stdio.h> #include<algorithm> #include<iostream> #include<string.h> #include<math.h> using namespace std; const int MOD = 7; const int MAXN = 50; int a[MAXN][MAXN];//增广矩阵 int x[MAXN];//解集 bool free_x[MAXN];//标记是否是不确定的

HDU 3359 高斯消元模板题,

http://acm.hdu.edu.cn/showproblem.php?pid=3359 题目的意思是,由矩阵A生成矩阵B的方法是: 以a[i][j]为中心的,哈曼顿距离不大于dis的数字的总和 / 个数,就是矩阵B的b[i][j] 现在给出B,要求A 那么我们设A矩阵为a[1][1], a[1][2], a[1][3]..... 那么对于每一个b[i][j]我们有b[i][j] = (a[1][1] + a[1][2] + ... + ) / cnt 所以这样可以建议一条方程,然后guas

高斯消元模板

高斯消元: 其实就是用矩阵初等变换解线性方程组,只是他要求每次选取的主元一定要是最大值. 模板 #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; const int MAXN=10000; int a[MAXN][MAXN];//增广矩阵 int x[MAXN];//解集 bool free_x[MAXN];/

【Luogu】P3389高斯消元模板(矩阵高斯消元)

题目链接 高斯消元其实是个大模拟qwq 所以就着代码食用 首先我们读入 for(int i=1;i<=n;++i) for(int j=1;j<=n+1;++j) scanf("%lf",&s[i][j]); 读入肯定没什么问题(不过我在这卡了一分多钟) 然后我们要进行消元操作 所谓消元操作其实就是对于输入的矩阵 比如说 9 3 2 2 1 4 7 3 1 3 4 5 进行一番乱搞,使得第当前枚举的(比如说枚举第i行第i列)s[i][j]系数变成1. 实际上就是整行

【转】高斯消元模板 by kuangbin

写的很好,注释很详细,很全面. 原blog地址:http://www.cnblogs.com/kuangbin/archive/2012/09/01/2667044.html #include<stdio.h> #include<algorithm> #include<iostream> #include<string.h> #include<math.h> using namespace std; const int MAXN=50; int

高斯消元模板,整数(数学)

线性代数,原理不讲了... 1 /* 用于求整数解得方程组. */ 2 3 #include <iostream> 4 #include <string> 5 #include <cmath> 6 using namespace std; 7 8 const int maxn = 105; 9 10 int equ, var; // 有equ个方程,var个变元.增广阵行数为equ, 分别为0到equ - 1,列数为var + 1,分别为0到var. 11 int a[

【洛谷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 说明 1≤n≤100,∣ai?

BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元

题目大意:给定n维空间下的n+1个点,求这n个点所在的球面的球心 曾经尝试了很久的模拟退火0.0 至今仍未AC 0.0 今天挖粪涂墙怒学了高斯消元-- 我们设球心为X(x1,x2,...,xn) 假设有两点A(a1,a2,...,an)和B(b1,b2,...,bn) 那么我们可以得到两个方程 (x1-a1)^2+(x2-a2)^2+...+(xn-an)^2=r^2 (x1-b1)^2+(x2-b2)^2+...+(xn-bn)^2=r^2 这些方程都是二次的,无法套用高斯消元 但是我们可以做