• 一些杂碎的知识点


    写在前面

    为了填补 NOI 大纲中不会的知识点,亦或是满足教练的要求?

    其实大多只是了解了一下定义,有一部分根本没有专门的例题,用到的时候再说吧。

    正文

    重联通图

    在无向图中,如果任意两个顶点之间含有不止一条通路,这个图就被称为重连通图
    在重连通图中,在删除某个顶点及该顶点相关的边后,图中各顶点之间的连通性也不会被破坏。

    我们发现重联通图就是点双联通

    只要一个图没有割点,他就是重联通图。

    更多内容详见 《重连通图及重连通分量》

    关于点双联通详见 Oi-Wiki-双连通分量

    威尔逊定理

    如果 (p) 是质数,那么

    [(p-1)! equiv -1 pmod p ]

    有些地方可能会用到。
    关于证明从网上找就可以。

    稀疏矩阵

    在矩阵中,若数值为 (0) 的元素数目远远多于非 (0) 元素的数目,并且非 (0) 元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非 (0) 元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。-百度百科

    特点:

    • 数值为 (0) 的元素数目远远多于非 (0) 元素的数目,并且非 (0) 元素分布没有规律
    • 通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于 (0.05) 时,则称该矩阵为稀疏矩阵(sparse matrix)

    压缩矩阵:

    太多的 (0) 元素储存起来比较浪费空间。

    这里介绍一种比较简单易懂的压缩方式:列压缩。

    就是用一个三元组分别把非零元素的行号、列号、元素值存下来。

    其他压缩方法 -> go to baidu?

    三角矩阵

    三角矩阵是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。- 百度百科

    对称矩阵

    对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。 在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。

    对角矩阵

    对角矩阵是除主对角线之外的元素均为 (0) 的矩阵。

    可重集排列&可重集组合

    在网上并没有找到该名词,感觉和重复组合差不多。

    可重集排列指在 (n) 个数中,重复的选出 (m) 个数,考虑排列顺序,的方案数。

    [A_{n+m-1}^m = C_{n+m-1}^m imes m! = frac{(n+m-1)!}{(n-1)!} ]


    可重集排列指在 (n) 个数中,重复的选出 (m) 个数,不考虑排列顺序,的方案数。

    [C_{n+m-1}^m = frac{(n-m+1)!}{m! imes (n-1)!} ]

    更多内容可以看一下我这篇博客

    锦标赛排序

    通过建立一个堆,用最少的比较次数进行排序。空间复杂度和时间复杂度均为 (O(nlog n))

    实现细节见锦标赛排序(胜者树,记录胜者)

    本人感觉不实用,因此没有尝试实现。

    矩阵转置运算

    将矩阵 (A) 的行换成同序号的列所得到的新矩阵称为矩阵 (A) 的转置矩阵,一般记作 (A')(A^T)

    原来(A^T)不是矩阵 (A)(T)次方啊

    满足下面四种运算规律:

    • ((A+B)^T = A^T + B^T)
    • (lambda A^T = (lambda A)^T)
    • ((AB)^T = B^TA^T)
    • ((A^T)^T = A)

    其他矩阵相关可以参考我的这篇博客

    格雷码

    格雷码是一个二进制数系,其中两个相邻数的二进制位只有一位不同。

    举个例子,(3) 位数二进制数的格雷码序列为 (000,001,011,010,110,111,101,100)

    我们以 (0) 为下标起点,用 (G(x)) 表示格雷码序列中的第 (x) 个。

    下面介绍三种构造方法:

    • 手动构造
      从全零格雷码开始按照如下方式构造:
      1、翻转最低位得到下一个格雷码,(例如 (000 o 001));
      2、把最右边的 (1) 的左边的位翻转得到下一个格雷码,(例如 (001 o 011));
      按照上面的方法交替构造 (2^k-1) 次后即可得到 (k) 的格雷码序列
    • 镜像构造
      (k) 位的格雷码可以从 (k-1) 位的格雷码以上下镜射后加上新位的方式快速的得到,如下图:
    • 计算方法

    [G(n) = n oplus left lfloor frac{n}{2} ight floor ]

    其中 (oplus) 表示异或,(left lfloor frac{n}{2} ight floor) 表示下取整

    例题:P5657 [CSP-S2019] 格雷码
    其他详细内容参考Oi-Wiki

    哈夫曼编码&哈夫曼树

    哈夫曼编码建议参考百度百科
    哈弗曼树建议参考这篇题解

    例题:
    P2168 [NOI2015] 荷马史诗
    P2556 [AHOI2002]黑白图像压缩

  • 相关阅读:
    Django——不同版本
    04爬取拉勾网Python岗位分析报告
    24 两两交换链表中的节点
    UniGUI学习之UniImage(39)
    Delphi7开发简单文件传输
    Javaday03(补充day02运算符,流程控制)
    java中代码块,构造方法和普通方法的代码执行顺序
    +=隐式类型转换
    关于switch中的default
    Java操作JSON数据(5)--jettison操作JSON数据
  • 原文地址:https://www.cnblogs.com/Silymtics/p/14894580.html
Copyright © 2020-2023  润新知