zoukankan      html  css  js  c++  java
  • 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)\)

    \[\forall i:\sum (r_i-x_{k,i})^2=R \]

    \[\forall i:\sum r_i^2-2\sum r_ix_{k,i}+\sum x_{k,i}^2=R \]

    \[\forall i:2\sum r_ix_{k,i}=\sum x_{k,i}^2-c \]

    \[\sum 2(x_{p,i}-x_{q,i})r_i = \sum (x_{p,i}^2-x_{q,i}^2) \]

    3. 臭气弹

    两种思路:

    第一种:暴算

    设一个到达 \(u\) 点的概率 \(dp_u\),由于全概率公式

    \[\boxed{\mathbb P(A) = \sum \mathbb P(B_i)\mathbb P(A|B_i)} \]

    所以

    \[dp_u=\sum_{v\to u}\dfrac{1-P/Q}{\deg v}\cdot dp_v \]

    Gauss 消元解出来即可 .

    特别的,点 \(1\) 还可以从天而降(概率为 \(1\)),所以 \(dp_1\gets dp_1+1\) .

    于是答案是 \(\dfrac QP dp_u\) 或者下面那个带 \(\sum\) 的做法 = =

    第二种:期望

    \(dp_u\) 表示到达 \(u\) 点的期望次数,这里可以拆点(炸 / 不炸)也可以直接搞

    \(dp\) 随便求(高斯消元解 dp),然后每个点的概率就是

    \[\mathbb P(u)=\dfrac{dp_u}{\sum dp_i} \]


    eps 要开到 \(10^{-9}\),要不然精度不够)

    4. 开关问题

    也是两种思路:

    第一种是列出一个同余 \(2\) 的线性方程组,然后发现初等行变换依然成立;
    第二种是列出一个 xor 线性方程组,初等行变换全部改成 xor 消;

    不管哪一种,最后找出自由元数量 \(r\)\(2^r\) 就是答案 .

  • 相关阅读:
    前端面试题目汇总摘录(HTML 和 CSS篇)
    The Road to learn React书籍学习笔记(第三章)
    The Road to learn React书籍学习笔记(第二章)
    算法复习:动态规划
    算法复习:回溯法
    算法复习:图
    算法复习:二叉树专题
    算法复习:最短路Dijkstra
    算法复习:BFS与DFS
    算法复习:标记数组 / 数组
  • 原文地址:https://www.cnblogs.com/CDOI-24374/p/15688927.html
Copyright © 2011-2022 走看看