#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std; double Abs(double x) { return x < 0 ? -x : x; }
double Max(double x, double y) { return x > y ? x : y; }
double Min(double x, double y) { return x < y ? x : y; } int read() {
int x = 0, k = 1;
char s = getchar();
while (s < '0' || s > '9') {
if (s == '-')
k = -1;
s = getchar();
}
while ('0' <= s && s <= '9') {
x = (x << 3) + (x << 1) + (s ^ 48);
s = getchar();
}
return x * k;
} void write(int x) {
if (x < 0) {
putchar('-');
x = -x;
}
if (x > 9)
write(x / 10);
putchar(x % 10 + '0');
} void print(int x, char c) {
write(x);
putchar(c);
} const int MAXN = 5e2 + 5;
const int MAXM = 3e5 + 5; struct Elimination {
bool free[MAXN];
int n, m, rk, opt;
double a[MAXN][MAXN], x[MAXN], eps;
Elimination() { eps = 1e-12; }
Elimination(int N, int M) {
n = N;
m = M;
}
double Abs(double x) { return x < eps ? -x : x; }
void Swap(double &x, double &y) {
double t = x;
x = y;
y = t;
} void clear() {
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) a[i][j] = 0;
} void calc() {
int r = 1, c = 1;
for (; r <= n && c <= m; r++, c++) {
int pos = r;
for (int i = r + 1; i <= n; i++)
if (Abs(a[i][c]) > Abs(a[pos][c]))
pos = i;
if (Abs(a[pos][c]) < eps) {
r--;
continue;
}
if (pos != r)
for (int i = c; i <= m; i++) Swap(a[r][i], a[pos][i]);
double t;
for (int i = 1; i <= n; i++)
if (i != r && Abs(a[i][c]) > eps) {
t = a[i][c] / a[r][c];
for (int j = m; j >= c; j--) a[i][j] -= t * a[r][j];
}
}
rk = r;
} void check() {
opt = 1;
for (int i = 1; i <= n; i++)
if (Abs(a[i][i]) < eps && Abs(a[i][m]) > eps) {
opt = -1;
return;
}
for (int i = 1; i <= n; i++)
if (Abs(a[i][i]) < eps && Abs(a[i][m]) < eps) {
free[i] = true;
opt = 0;
} else
x[i] = a[i][m] / a[i][i];
}
};

最新文章

  1. 十二种获取Spring的上下文环境ApplicationContext的方法
  2. 【强烈推荐】如何给TortoiseGit 配置密钥?
  3. IOS第18天(10,核心动画-转盘,自定义buton,旋转动画)
  4. 微信公众平台开发:Web App开发入门
  5. IOS横竖屏控制与事件处理
  6. 《Pointers On C》读书笔记(第五章 操作符和表达式)
  7. SQL中的Update、delete与inner join 联合使用
  8. C++类实现最大数的输出
  9. 1、安卓数据存储机制——sharedPreference
  10. 微信小程序左滑删除功能
  11. mac pycharm快捷键整理
  12. Python 生成随机验证码
  13. sql server 表分区
  14. Numpy系列(十三)- 文件IO
  15. Python各种图像库的图像的基本读写方式
  16. ASP.NET MVC项目实现BasePage基类用作ASPX.CS网页继承
  17. (转)C#与Outlook交互收发邮件
  18. [转]MBTiles 离线地图演示 - 基于 Google Maps JavaScript API v3 + SQLite
  19. 使用jdk自带的工具native2ascii 转换Unicode字符和汉字
  20. JCL: What is EXCP

热门文章

  1. Linux-ssh-key验证
  2. 团队Beta5
  3. SQL注入到getshell
  4. python数据类型、用户交互和运算符
  5. netty系列之:netty中常用的字符串编码解码器
  6. 斯坦福NLP课程 | 第12讲 - NLP子词模型
  7. jQuery基础入门+购物车案例详解
  8. 清明欢乐赛(USACO选题)
  9. 使用git提交和拉取gitee的代码
  10. JavaScript String -&gt; Number