Erdős–Gallai 定理

前几天考试有一个建出最大流模型,转为最小割,然后模拟最小割的套路。

这一个套路并不是少见的。在 Gale-Ryser 定理和 Erdős–Gallai 定理的证明都体现了这个想法。

Gale-Ryser 定理:我先阅读了博文的 ycx060617 的评论的对 Gale-Ryser 定理的证明,略去。

Erdős–Gallai 定理:非增序列 \(d_i\) 可能作为简单图的度数序列的充分必要条件是

\[\displaystyle \sum _{i=1}^{k}d_{i}\leq k(k-1)+\sum _{i=k+1}^{n}\min(d_{i},k),\forall k\\ 2\mid\sum d_i
\]

建出网络流图:\(S\) 向点 \(x_{1:n}\) 连边权值为 \(d_{1:n}\),\(y_{1:n}\) 向 \(T\) 连边权值为 \(d_{1:n}\),\(x_i,y_j\) 连权值为 \(1\) 的边当 \(i \neq j\)。

有解当且仅当最大流为 \(\sum d_i\),且中间边的有流边是配对的。

首先证明,不考虑配对条件,最小割是 \(\sum d_i\) 的充分条件确实是上面所述(枚举左边选了那些点,考虑右边选点个数即可);

然后需要证明:如果存在中间点的(符合条件)最大流方案,则存在满足配对条件且流量不变最大流方案。

首先去除已配对边和零度点。只需证明每个局面 \(P\) 都存在一个至少获得一个新配对边的方案。

注意一个基本的事实:如果 \((a,b),(x,y)\) 配对,那么 \((a,y),(b,x)\) 配对。

找到一条存在边 \(E_1\) 和他的对称边 \(E_2(a,b)\),如果 \(\exists (u,a),(v,b)\in P,(u,v)\not\in P\),就胜利了。

否则一直不满足这个条件,不能无穷继续,则一定会连出一个环状的关系。这个时候最后一对边改成 \((a,y),(b,x)\) 的形状,逐个向前调整(这是因为 \(2\mid \sum d_i\)),证毕。

哈基米算法

定理:设 \(f(d)\) 为一个度数序列的合法性,则设 \(d'\) 为把 \(d_1\) 清零,\(d_{2:d_1+1}\) 减一的序列,则 \(f(d)=f(d')\)。

应该是分讨一下就可以了(但是分讨有点过于麻烦了,,)

然后直接按照这个定理的过程做判定即可。出现负数直接寄,最后全零就是赢。

7.1 闲话-Erdős–Gallai 定理和哈基米算法的更多相关文章

  1. Codeforces 1091E New Year and the Acquaintance Estimation Erdős–Gallai定理

    题目链接:E - New Year and the Acquaintance Estimation 题解参考: Havel–Hakimi algorithm 和 Erdős–Gallai theore ...

  2. POJ1659 Frogs' Neighborhood(Havel–Hakimi定理)

    题意 题目链接 \(T\)组数据,给出\(n\)个点的度数,问是否可以构造出一个简单图 Sol Havel–Hakimi定理: 给定一串有限多个非负整数组成的序列,是否存在一个简单图使得其度数列恰为这 ...

  3. may be a diary?

    [About Me] SD某弱校高二的OIer. qq 995681518,欢迎一起交流~ 喵喵喵喵喵 "当你想要颓废的那一刻,想一想当初为什么走到了这里." 以下文字充满负面情绪 ...

  4. CF1091E New Year and the Acquaintance Estimation

    题目地址:CF1091E New Year and the Acquaintance Estimation 首先,易知 \(ans\) 的奇偶性与所有给出的数的和的奇偶性相同 其次,易证 \(ans\ ...

  5. Codeforces 1091E New Year and the Acquaintance Estimation [图论]

    洛谷 Codeforces 思路 有一个定理:Erdős–Gallai定理. 然后观察样例,可以猜到答案必定是奇偶性相同的一段区间,那么二分左右端点即可. 定理和这个猜测暂时都懒得学/证,留坑. #i ...

  6. Good Bye 2018 (A~F, H)

    目录 Codeforces 1091 A.New Year and the Christmas Ornament B.New Year and the Treasure Geolocation C.N ...

  7. 【群论】polya定理

    对Polya定理的个人认识     我们先来看一道经典题目:     He's Circles(SGU 294)         有一个长度为N的环,上面写着“X”和“E”,问本质不同的环有多少个(不 ...

  8. CF 1091E New Year and the Factorisation Collaboration

    昨晚Good Bye 2018D题没做出来,车翻大了…… 官方题解      传送门 初赛知识:一个无向图所有顶点度数之和为偶数.然而这东西还有一个高端的名字:Handshaking lemma 但是 ...

  9. Miller Rabin 算法简介

    0.1 一些闲话 最近一次更新是在2019年11月12日.之前的文章有很多问题:当我把我的代码交到LOJ上,发现只有60多分.我调了一个晚上,尝试用{2, 3, 5, 7, 11, 13, 17, 1 ...

  10. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

随机推荐

  1. 0. RyuJIT Tutorials - RyuJIT 的历史和架构

    目录 上一篇:无 下一篇:待更新 正文 RyuJIT - 即 .NET 的 JIT 编译器,负责将 IL 代码编译为最终用于执行的机器代码. 本系列为 RyuJIT 教程,将分为多篇进行更新发布,旨在 ...

  2. 再也不用写请求HttpHelper了,HttpClient帮助你

    前言 在C#7.1之后,net推出HttpClient类代替WebRequest, HttpWebRequest, ServicePoint, and WebClient ,先来看下他们在以前的作用 ...

  3. django admin 后台管理 新手学习步骤记录 (2)

    学习使用django admin后台管理. 参考.Django基础之Admin后台数据管理_django admin_马航行的博客-CSDN博客

  4. 【巧用set实现对有序数组O(logn)时间复杂度增、删、查、改、二分操作】codeforces 1041 C. Coffee Break

    题意 第一行输入三个整数 \(n,m,d(1 \leq n \leq 2 * 10^5, n \leq m \leq 10^9, 1 \leq d \leq n)\),第二行输入 \(n\) 个整数, ...

  5. Flutter 设置安卓启动页报错 java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.

    设置安卓启动页报错 首先设置安卓启动页 在android/app/src/main/AndroidManifest.xml中添加这一行 <meta-data android:name=" ...

  6. ajax请求与前后端交互的数据编码格式

    目录 一.Ajax AJAX简介 应用场景 AJAX的优点 语法实现 二.数据编码格式(Content-Type) 写在前面 form表单 几种数据编码格式介绍 三.ajax携带文件数据 四.ajax ...

  7. 【Linux】职教云作业

    作业_职教云_Day01 @ 哔哩哔哩 萌狼蓝天 1.由普通用户切换到root用户 su 2.列出home目录下的各个文件名字 cd /home ls 3.在/etc/目录下显示以sysc开头的所有命 ...

  8. 在linu系统安装apache全过程(httpd、apr、apr-util、pcre)以及进行相应配置

    1.下载安装包,需要下面3个安装包[root@bes2 apache]# ll总用量 8520-rw-r--r--. 1 root root 1020833 9月 18 17:47 apr-1.5.1 ...

  9. TypeNameExtractor could not be found

    TypeNameExtractor could not be foundException 一.注意: 如果项目中使用了 knif4j或swagger (knif4j内核中就使用了swagger) 项 ...

  10. 解决File "<input>", line 1 pip install XXXX ^ SyntaxError: invalid syntax

    首先退出python exit() 打开cmd里直接输入(不要进python) pip install XXX