Gauss 消元法
错乱瞎写
1. 线性方程组
省流:初等行变换化为一个上三角,然后瞬间出解
inline bool z(const double& x){return abs(x)<eps;}
int Gauss() // O(n^3)
{
int c, r;
for (c=1, r=1; c<=n; c++)
{
int m = r;
for (int i=r; i<=n; i++)
if (abs(a[i][c]) > abs(a[m][c])) m = i;
if (z(a[m][c])) continue;
for (int i=c; i<=n+1; i++) swap(a[m][i],a[r][i]);
for (int i=n+1; i>=c; i--) a[r][i] /= a[r][c];
for (int i=r+1; i<=n; i++)
if (!z(a[i][c]))
for (int j=n+1; j>=c; j--) a[i][j] -= a[r][j] * a[i][c];
r++;
}
for (int i=n; i>=0; i--) //回代
for (int j=i+1; j<=n; j++) a[i][n+1] -= a[i][j] * a[j][n+1];
if (r <= n)
{
for (int i=r; i<=n; i++)
if (!z(a[i][n+1])) return -1;
return 0;
} return 1;
}
2. 球形空间产生器sphere
\((r_1,r_2,\cdots,r_n)\)
\]
\]
\]
\]
3. 臭气弹
两种思路:
第一种:暴算
设一个到达 \(u\) 点的概率 \(dp_u\),由于全概率公式
\]
所以
\]
Gauss 消元解出来即可 .
特别的,点 \(1\) 还可以从天而降(概率为 \(1\)),所以 \(dp_1\gets dp_1+1\) .
于是答案是 \(\dfrac QP dp_u\) 或者下面那个带 \(\sum\) 的做法 = =
第二种:期望
令 \(dp_u\) 表示到达 \(u\) 点的期望次数,这里可以拆点(炸 / 不炸)也可以直接搞
\(dp\) 随便求(高斯消元解 dp),然后每个点的概率就是
\]
(eps 要开到 \(10^{-9}\),要不然精度不够)
4. 开关问题
也是两种思路:
第一种是列出一个同余 \(2\) 的线性方程组,然后发现初等行变换依然成立;
第二种是列出一个 xor 线性方程组,初等行变换全部改成 xor 消;
不管哪一种,最后找出自由元数量 \(r\),\(2^r\) 就是答案 .
Gauss 消元法的更多相关文章
- 【Java例题】4.3 3. 使用Gauss消元法求解n元一次方程组的根,
3. 使用Gauss消元法求解n元一次方程组的根,举例,三元一次方程组:0.729x1+0.81x2+0.9x3=0.6867x1+x2+x3=0.83381.331x1+1.21x2+1.1x3=1 ...
- [bzoj1770][Usaco2009 Nov]lights 燈——Gauss消元法
题意 给定一个无向图,初始状态所有点均为黑,如果更改一个点,那么它和与它相邻的点全部会被更改.一个点被更改当它的颜色与之前相反. 题解 第一道Gauss消元题.所谓gauss消元,就是使用初等行列式变 ...
- C# 列主元素(Gauss)消去法 计算一元多次方程组
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C# 顺序高斯(Gauss)消去法计算一元多次方程组
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Function Set in OPEN CASCADE
Function Set in OPEN CASCADE eryar@163.com Abstract. The common math algorithms library provides a C ...
- OpenCASCADE Interpolation - Lagrange
OpenCASCADE Interpolation - Lagrange eryar@163.com Abstract. Power basis polynomial is the most simp ...
- FORTRAN程序设计权威指南
<FORTRAN程序设计权威指南> 基本信息 作者: 白海波 出版社:机械工业出版社 ISBN:9787111421146 上架时间:2013-7-23 出版日期:2013 年7月 ...
- OpenCASCADE 3 Planes Intersection
OpenCASCADE 3 Planes Intersection eryar@163.com Abstract. OpenCASCADE provides the algorithm to sear ...
- Wannafly Camp 2020 Day 1D 生成树 - 矩阵树定理,高斯消元
给出两幅 \(n(\leq 400)\) 个点的无向图 \(G_1 ,G_2\),对于 \(G_1\) 的每一颗生成树,它的权值定义为有多少条边在 \(G_2\) 中出现.求 \(G_1\) 所有生成 ...
随机推荐
- k8s中应用GlusterFS类型StorageClass
GlusterFS在Kubernetes中的应用 GlusterFS服务简介 GlusterFS是一个可扩展,分布式文件系统,集成来自多台服务器上的磁盘存储资源到单一全局命名空间,以提供共享文件存储. ...
- Mysql limit 优化优化
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始.有过痛苦有过绝望,到现在充满信心! MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新 ...
- Springboot启动类及注解说明
Spring boot的启动是基于main方法的,其主要注解为: 1. @springBootApplication:项目的启动注解,是一个组合注解,包含@SpringbootConfiguratio ...
- Change Buffer 只适用于非唯一索引页?错
最近在网上看到一些文章里说:"change buffer 只适用于非唯一索引页."其实这个观点是错的,先来看看官方文档对 change buffer 的介绍: 文档地址:https ...
- 题解 CF1095F 【Make It Connected】
题意简述 \(n\)( \(1≤n≤2×10^5\) )个点,每个点 \(i\) 有一个点权 \(a_i\) ( \(1≤a_i≤2×10^{12}\) ),将两个点 \(i\),\(j\) 直接相连 ...
- 线性求 $i^i$ 的做法
线性求 \(i^i\) 的做法 方便起见,我们记 \(f_i=i^i\),\(i\) 的最小质因子为 \(p=\mathrm{minp}(i)\),第 \(i\) 个质数为 \(\mathrm{pr} ...
- git实战-多分支开发-2022新项目
现在开发中大多数公司中都在使用Git这个代码版本管理工具,几乎可以说是已经成为标配,刚入职不久的这家新公司也不例外. 去公司没多久,开始搭建项目,然后创建开发分支,有多少个后端人员就创建多少个开发分支 ...
- 什么是HBase?终于有人讲明白了
一.初识HBase HBase 是一个面向列式存储的分布式数据库,其设计思想来源于 Google 的 BigTable 论文.HBase 底层存储基于 HDFS 实现,集群的管理基于 ZooKeepe ...
- 使用docker搭建jupyter notebook / jupyterlab
说明 由于官方镜像实在是不怎么好用,所以我自己做了一个优化过的jupyter notebook的镜像 notebook_hub,使用我这个镜像搭建容器非常简单,下面就基于这个notebook_hub来 ...
- 用Arduino玩GM65二维码扫描模块
目录 用Arduino玩GM65二维码扫描模块 用Arduino玩GM65二维码扫描模块 最近在做Capstone,内容是我们之前实验室参加过的工程训练的物流搬运小车,所以现在来复盘一下我使用Ardu ...