标签 OI考点梳理

个人相关



  总结.

  OI历程.

题目



  基础题.

  综合题.

  原创题.

考点



  注意是考点不是知识点, 知识点才没有这么散乱呢QAQ.

  线性代数.

    行列式求值.

    Matrix-tree定理.

    Lindstrom-Gessel-Viennot引理.

    高斯消元.

    线性基.

    特征值.

    矩阵乘法.

  数论.

    

## **一、参考资料**<https://blog.sengxian.com/algorithms/networkflow-variants><http://www.matrix67.com/blog/archives/116><http://dsqiu.iteye.com/blog/1689505>
## **二、匹配,边覆盖,独立集,点覆盖之间的三组关系及原理**### **(一)最大匹配与最小边覆盖**&emsp;&emsp;对于任意连通图,有: $$|M_\max|+|F_\min|=|V|$$ &emsp;&emsp;用中文描述就是: $最大匹配数+最小边覆盖数=顶点数$ 
**证明:**&emsp;&emsp;若在边覆盖集中新增一条边,则有三种情况:① 当边的两端都被覆盖时,多覆盖了 $0$ 个点② 当边一端覆盖一端未覆盖时,多覆盖了 $1$ 个点③ 当边的两端都未被覆盖时,多覆盖了 $2$ 个点
&emsp;&emsp;由于我们要用最小的边,覆盖所有的 $n$ 个点,所以每次覆盖的边肯定越多越好。&emsp;&emsp;能覆盖 $2$ 个点的边就是最大匹配,接下来,对于每个没有被覆盖的点,找到一条它与被覆盖的点的连边,把这条边连起来就好了。
&emsp;&emsp;所以 $|F_\min|=(|V|-2*|M_\max|)+|M_\max|$ &emsp;&emsp;所以 $|M_\max|+|F_\max|=|V|$ 
### **(二)最大独立集与最小点覆盖的关系**&emsp;&emsp;对于任意图,有:$$S_\max\cup S_\min=V$$&emsp;&emsp;数量化之后,有$$|S_\max|+|S_\min|=|V|$$&emsp;&emsp;用中文描述就是:在点集 $V$ 中,最大独立集 $S_\max$ 与最小点覆盖 $S_\min$ 互补
**证明:**&emsp;&emsp;对于一个独立集 $P$ ,设它在 $V$ 中的补集为 $Q$ 。&emsp;&emsp;根据独立集的定义, $P$ 中的节点两两不相邻,所以与 $P$ 中节点相连的边对应的节点一定在补集 $Q$ 中。而还有一种类型的边,就是两个点都在补集 $Q$ 中。&emsp;&emsp;所以,对于每条边,它一定至少有一个端点在补集 $Q$ 中,即 $Q$ 是一个点覆盖集。&emsp;&emsp;所以对于任意一个独立集,**有且仅有**一个点覆盖集与其互补。&emsp;&emsp;所以当且仅当独立集为最大独立集时,最大独立集的补集为最小点覆盖。
### **(三)二分图中最大匹配与最小点覆盖的关系(K?nig定理)****K?nig定理:**在二分图中,有$$|M_\max|=|S_\min|$$用中文描述就是,最大匹配数=最小点覆盖数
**证明:**&emsp;&emsp;首先提出构造方法。&emsp;&emsp;进行二分图最大匹配,对于右端所有没被匹配的点,找增广路,将点进行标记。&emsp;&emsp;最小点覆盖为左端所有被标记的点,和右端所有未被标记的点。
&emsp;&emsp;**为什么点的个数等于最大匹配数?**这是因为,在我们选取的点集中,每个点都在一个匹配上,且每个匹配上只有一个点集上的点。即:最大匹配上的每一条边有且仅有一个点集中的点。
&emsp;&emsp;**为什么点集为点覆盖集?**即证明:不存在一条边,左边的点为被标记,右边的点被标记。&emsp;&emsp;假设存在一条边,左边的点为被标记,右边的点被标记,分类讨论:当这条边是匹配边时,必然是从左走到右,既然左边没有被标记,那么右边也不能被标记;当这条边未被匹配时,必然是从右走到左,既然右边被标记了,那么就可以走到左边啊。所以不存在。
&emsp;&emsp;**为什么点覆盖集最小?**&emsp;&emsp;这是因为,我们既然有了最大匹配的边数$M$,则至少有$2M$个点,所以至少要用$M$个点来覆盖。所以取到了下限。
&emsp;&emsp;综上,有 $|F_\max|=|S_\min|$
## **三、二分图最大匹配****【构造方法】【计数方法】**Hungary算法```c++#define rep(i,a,b) for (int i=(a);i<=(b);i++)
int mp[N][N];int used[N],att[N];int res;
int Hungary(int x) {rep(nx,1,n)if (!used[nx]&&mp[x][nx]) {used[nx]=1;if (!att[nx]||Hungary(att[nx])) {att[nx]=x;return 1;}}return 0;}
void Match(void) {rep(i,1,n) {memset(used,0,sizeof used);Hungary(i);}res=0;rep(i,1,n)res+=(att[i]>0);printf("%d\n",res);}```
## **四、二分图最小边覆盖****【计数方法】** $|F_\min|=|V|-|M_\max|$ ,只需要求二分图最大匹配即可;**【构造方法】**① 求二分图最大匹配,最大匹配的边全部都要取② 然后对于没有被匹配的点,选取一条它与被匹配的点相连的边
## **五、二分图最小点覆盖****【计数方法】** $|S_\min|=|M_\max|$**【构造方法】**① 二分图最大匹配② 对于右边所有没有被匹配的点,尝试找增广路,把遍历的点进行标记③ 点覆盖集为:左边被标记的点+右边未被标记的点
## **六、二分图最大独立集****【计数方法】** $|S_\max|=|V|-|S_\min|=|V|-|M_\max|$**【构造方法】**求出最小点覆盖,取补集。
## **七、二分图最大团****【计数方法】** $最大团的大小=补图的最大独立集$**【构造方法】** 补图的最大独立集
## **八、最小路径覆盖问题****【定义】**在图 $G$ 中,用最少的路径覆盖所有的点为了方便表示,记最小路径覆盖数为 $T_\min$ 
**【建模】**在图 $G$ 中,将每个点 $i$ 拆成两个点 $x_i,y_i$ ,构成二分图,若 $(u,v)\in E$ ,则把 $x_u$ 向 $y_v$ 连接一条边。若要求路径不交叉,则直接连接;若路径可以交叉,则应该先用Floyd求解传递闭包。**【计数方法】** $$|T_\min|=|V|-|M_\max|$$ **【构造方法】**&emsp;&emsp;进行二分图最大匹配,若 $x_u$ 向 $y_v$ 连接了一条边,说明有 $u->v$ 的路径。

时间: 2024-12-26 21:00:35

标签 OI考点梳理的相关文章

ES基础知识与高频考点梳理

知识点梳理目录列表 变量类型 JS的数据类型分类和判断 值类型和引用类型 原型与原型链(继承) 原型和原型链的定义 继承写法 作用域和闭包 执行上下文 this 闭包是什么 异步 同步VS异步 异步和单线程 前端异步的场景 ES6/7新标准的考查 箭头函数 module class set和map promise 变量类型 JavaScript是一种弱类型脚本语言,所谓弱类型指的是定义变量时,不需要什么类型,在程序运行过程中会自动判断类型 ECMAScript中定义了6种原始类型 boolean

袋鼠云数据中台专栏(七):用户标签体系建设的四字箴言

本文作者:子玺 袋鼠云数据中台解决方案专家.拥有近10年大数据从业经验,拥有PMP项目管理资格认证,精通数据类项目的开发实施和管理.曾服务过国家工商总局.北京市工商局.北京市财政局.广州开发区大数据局.平湖人社局.海盐人社局等行政单位,担任多个大型数据项目的数据应用咨询顾问/项目经理. 正文: 一.什么是用户画像?什么是标签? 当我们从互联网时代逐渐步入大数据时代后,企业及消费者行为不可避免地要面临一系列改变与重塑.其中最大的变化莫过于,消费者的一切行为在企业面前似乎都将是「可视化」的,然而,「

梳理与总结

第一篇 这是什么? 意义 一个个人博客的开始,记录个人的学习与成长. 内容 先梳理自己的个人知识体系. 以后的文章会有什么方面的内容,计划总体方向. 自勉: 一个人的知识面是一个圆圈,知识储备越多,圆圈越大,接触到的面积便越广阔,便能掌握和窥视更多的机会. 首先梳理一下自己的知识体系,会些什么,哪些需要深入了解. 1. 前端方面 CSS HTML javascript ajax和josnp停留在理论方面 买的<javascript权威指南>需要好好深入 jQuery框架 体系的看过一本<

杂谈

原来我以为我牛逼学习能力抢理解能力强,因此我才能在高三每天平均总学习时间3小时(含上课听课)的情况下考上大学.整个专业没几个人能做到.后来我上了知乎,才发现像我这种努力情况并考上985的人多的是.许多清华北大的人像我这样的也有许多.我开始思考,但我还是觉得自己牛逼,毕竟高三我真的不看书不学习,高一高二也是,可能是高一高二英语学的还挺认真的,高三学学数学放弃理综就够了,归根到底还是自己战略牛逼.直到最近我才意识到真相,我一点不牛逼好吗.我的数学老师是讲课极其详细的人,每个考点梳理的很合理,就像加权

第十天学习:html标签梳理

关键字:html标签梳理 晨跑计划: 学习计划: 在笔记本上梳理前面学习的标签 学习记录: html标签梳理(按功能类别排列) 标签   描述 标签类型 规范  <html>  定义文档类型      <title>  定义文档的标题      <head> 定义文档的头部       <body> 定义文档的主体      扩展阅读: html你可能还不知道的一些知识点 html标签补充包括一些h5新增的标签 问题的记录与解决:

html常用标签梳理

标签的语法 标签由英文尖括号<和>括起来,如就是一个标签. html中的标签一般都是成对出现的,分开始标签和结束标签.结束标签比开始标签多了一个/. 如: (1)<p></p> (2) <div></div> (3) <span></span> 标签与标签之间是可以嵌套的,但先后顺序必须保持一致,如: 里嵌套 ,那么 必须放在 的前面.如下图所示. HTML标签不区分大小写,<h1>和<H1>是一样

JavaScript内容梳理 示例之模态对话框 示例之全选和反选以及取消 示例之后台管理左侧菜单

1 <!DOCTYPE html> 2 <!--示例之模态对话框--> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Title</title> 7 <style> 8 .hide{ 9 display: none; 10 } 11 .c1{ 12 position: fixed; 13 lef

JavaScript----marquee滚动标签 图片无缝滚动 插入百度地图

页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee标记不仅可以移动文字,也可以移动图片,表格等. 语法:<marquee>...</marquee>: 说明:在标记之间添加要进行滚动的内容. 重要属性: 1.滚动方向direction(包括4个值:up. down. left和 right) 语法:<marquee direct

App最新上架流程梳理

一个app从研发到提测最后到上架这是一个完整的产品周期,需要一套与之相对应的流程来保证质量,前面2个按下不提,今天就来梳理上架的流程. 众所周知,应用渠道分为App Store和安卓2个,咱们就这2个渠道的上架情况分别来梳理下. 一.App Store 1.开通iOS的开发者账号 进入https://developer.apple.com/programs/ios/开通,$99/year费用不便宜,用信用卡付的话需要visa卡,具体注册流程这里不细说(注册步骤http://blog.csdn.n