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\) 所有生成 ...
随机推荐
- Docker容器(container)详解 (转载自http://c.biancheng.net/view/3150.html)
- python工具--获取盛科交换机端口模块类型,波长,传输距离等信息
交换机端口模块信息对应的OID节点为各厂商私有节点,获取其他厂商信息需要把OID进行替换 1 #! /usr/bin/env python 2 #-*-coding:utf-8-*- 3 import ...
- Android.mk编译App源码
在Andriod源码环境编译APP主要考虑如何引入第三方jar包和arr包的问题,初次尝试,步步是坑,这里给出一个模板: LOCAL_PATH := $(call my-dir) include $( ...
- 自动装箱与自动拆箱——JavaSE基础
自动装箱与自动拆箱 自动装箱与拆箱就是编译器蜜糖(Compiler Sugar) Integer a = 234; // 自动装箱,实际上是Integer a = Integer.valueOF(23 ...
- React简单教程-3.1-样式之使用 tailwindcss
前言 本文是作为一个额外内容,主要介绍 tailwindcss 的用法 tailwindcss 是一个功能类优先的 CSS 框架,我在以前的文章里有描述为什么使用功能类优先:为什么我在 css 里使用 ...
- mac M1 php扩展 xlswriter 编译安装爬坑记录
电脑配置 MacBook Pro(14英寸,2021年) 系统版本 macOS Monterey 12.4 芯片 Apple M1 Pro PHP环境 MAMP Pro Version 6.6.1 ( ...
- Markdown常见基本语法
标题 -方式一:使用警号 几个警号就是几级标题,eg: # 一级标题 -方式二: 使用快捷键 ctrl+数字 几级标题就选其对应的数字, eg: ctrl+2(二级标题) 子标题 -方式一: 使用星号 ...
- dotnet 在 linux 上构建问题(RID 的问题)
个人理解 一方面 /etc/os-release 中定义的的 ID VERSION_ID 是会与源代码中定义 RID 的相对应,如果不对应,就会报错 The specified RuntimeIden ...
- 论文解读(SR-GNN)《Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data》
论文信息 论文标题:Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data论文作者:Qi Zhu, ...
- 使用C++的ORM框架QxORM
QxORM中,我们用的最多的无非是这两点 官方表述是这样的: 持久性: 支持最常见的数据库,如 SQLite.MySQL.PostgreSQL.Oracle.MS SQL Server.MongoDB ...