[hdu5503]EarthCup[霍尔定理]】的更多相关文章

题意 一共 \(n\) 只球队,两两之间会进行一场比赛,赢得一分输不得分,给出每只球队最后的得分,问能否构造每场比赛的输赢情况使得得分成立.多组数据 \(T\le 10,n\le 5\times 10^4\) 分析 容易想到一个网络流的模型:把每场比赛看成点,连向对应的两只队伍.实际上可以把每只队伍的拆成 \(a_i\) 个点就是二分图的模型了. 考虑霍尔定理,队伍和队伍之间的区别只在于 \(a\) ,所以考虑枚举队伍数量 \(k\) ,判断最极端的 \(k\) 只队伍即可.\(a\) 最小的…
题面戳我 Solution 二分图是显然的,用二分图匹配显然在这个范围会炸的很惨,我们考虑用霍尔定理. 我们任意选取穿\(l,r\)的号码鞋子的人,那么这些人可以穿的鞋子的范围是\(l,r+d\),这个时候我们可以根据霍尔定理得出满足人人有鞋子穿的时候的式子是 令\(sum[i]\)表示穿\(i\)号鞋子的人数 \[\sum^r_{i=l} sum[i] \leq (r-l+1+d)*k\] 我们把这个式子整理下: \[\sum^r_{i=l} (sum[i]-k) \leq d*k\] 我们会…
bzoj3693 Solution: 显然我们可以把人和位置抽象成点,就成了一个二分图,然后就可以用霍尔定理判断是否能有解 一开始我随便YY了一个\(check\)的方法:就是每次向后一组,我们就把那一组可以位置标记为\(true\),用线段树存储,比如我们处理到了第\(i\)组,线段树里面就是前面\(i\)组可以放在那一些位置上,\(check\)总共可以放的位置数目不小于前\(i\)组总人数就继续,否则输出\(No\),这样显然是错的,很容易举出反例,于是我进行了一下的神奇操作. 我们先按照…
题面 题目大意: 给你\(m\)张椅子,排成一行,告诉你\(n\)个人,每个人可以坐的座位为\([1,l]\bigcup[r,m]\),为了让所有人坐下,问至少还要加多少张椅子. Solution: 为什么加椅子?我们可以在最左边或最右边一直加直到人人都有座位. 首先这道题目抽象成二分图很简单,然后我们可以只要求解出人与座位的最大匹配是多少,总人数减去即可,但跑二分图最大匹配显然会超时,我们就可以往霍尔定理方面想. 然后你还需要知道一个霍尔定理推论:假设某个人的集合为\(X\),这个集合所对应的…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF1009G.html 题目传送门 - CF1009G 题意 给定一个长度为 $n$ 的字符串 $s$ .并给定 $m$ 条限制,第 $i$ 条限制声明了第 $i$ 个位置的字符可以取的值.如果没有声明表示可以任意取值. 求一个字符串 $s$ 的排列,在满足 $m$ 条限制的同时,使得字典序最小.如果不存在满足限制条件的字符串,则输出 $-1$. $n,m\leq 10^5$,字符集 $ = \{'a','b…
题意 洛谷 分析 参考了Icefox 首先二分,然后考虑霍尔定理判断是否有完美匹配.如果是序列的话,因为这里不会出现 \(j<i,L(i)<L(j)\) 或者 \(j<i,R(i)<R(j)\) 的情况,所以可以不用线段树,直接判断是否存在 \(j,i(j<i)\) 满足 \(R(i)-L(j)+1<i-j+1\) (只需要判断连续的一段). 因为是环,考虑将 \(a,b\) 数列分别倍长,但是发现环上到达某个 \(b\) 仍然需要讨论.此时只需要在最左边和最右边再加一…
题意 给你一个长为 \(n\) 的串,字符集为 \(a,b,c,d,e,f\) .你可以将整个串打乱之后重新放置,但是某些位置上有一些限制:必须放某个字符集的字符.问字典序最小的串,如果无解输出 "Impossible". \(n\le 10^5\) 分析 每次贪心地选择字典序最小的字符判断,判断后面是否可以完美匹配.可以考虑霍尔定理. 这里有两种想法,一种是对于每种字符开一个 \(bitset​\) 记录被包含的位置然后求并集(字符匹配位置):另一种则是考虑 "非完美算法&…
题意 题目链接 分析 又是一个二分图匹配的问题,考虑霍尔定理. 根据套路我们知道只需要检查 "区间的并是一段连续的区间" 这些子集. 首先将环倍长.考虑枚举答案的区间并的右端点 \(r\),显然 \(r\) 应该在某个区间的右端点上.我们想要判断是否存在一个 \(l\) 使得 \(r-l+1\le m\) 且 \(\sum\limits_{l\le L_i,R_i\le r}a_i>r-l+1\) ,扫描线+线段树 即可. 有一类特殊情况:区间的并是整个环,这时它在序列上的表示长…
题意 一共有 \(n\) 堆石子,每堆石子有一个数量 \(a\) ,你要进行 \(m\) 次操作,每次操作你可以在满足前 \(i-1\) 次操作的回答的基础上选择在 \([L_i,R_i]\) 区间中拿走至多 \(b\) 颗石子,保证区间不存在包含关系,求每次你最多拿走多少颗石子. \(n\le 4\times 10^4\) 分析 二分图匹配复杂度太高,考虑霍尔定理. 假设某次操作时我们已经知道了每次操作取走多少颗石子,我们选择判断的操作集合一定是按 \(L\) 排序之后连续的(因为能够选择的区…
题意 题目链接 分析 这个二分图匹配模型直接建图的复杂度太高,考虑霍尔定理. 对于某些人组成的区间,我们只需要考虑他们的并是一段连续的区间的集合.更进一步地,我们考虑的人一定是连续的. 假设我们考虑的区间的总人数为 \(x\) ,区间长度为 \(len\), 那么 \(x-(len+d)*k>0\) 于是 \(x-k*len>dk\) ,维护连续最大和即可. 总时间复杂度为 \(O(nlogn)\). 代码 #include<bits/stdc++.h> using namespa…
题目链接 Problem Statement There are M chairs arranged in a line. The coordinate of the i-th chair ($$$1≤i≤M$$$) is $$$i$$$.N people of the Takahashi clan played too much games, and they are all suffering from backaches. They need to sit in chairs and re…
题意 N个人抢M个椅子,M个椅子排成一排 ,第i个人只能坐[1,Li]∪[Ri,M],问最多能坐多少人 $i$人连边向可以坐的椅子构成二分图,题意即是求二分图最大完美匹配,由霍尔定理,答案为$max(|X|-\omega(X))$,$X$为人的集合,$\omega(X)$可以表示为$[1,l] \cup[r,M]$,所以可以枚举$\omega(X)$也就是$(l,r)$,求出最大的$|X|$,也就是满足$L_i\le l \land r \le R_i$的$i$的数量,也就是平面上以$(l,r)…
题意 给一张$n\times m$二分图,带点权,问有多少完美匹配子集满足权值和大于等于$t$ 这里有一个结论:对于二分图$\mathbb{A}$和$\mathbb{B}$集合,如果子集$A \in \mathbb{A},B \in \mathbb{B}$,且$A,B$分别是完美匹配的子集,那么$A \cup B$属于一个完美匹配 有了这个结论之后,考虑单侧,枚举子集$S$,利用霍尔定理判定$S$是否是完美匹配,并通过dp转移状态,记录下单侧所有满足条件的权值和,然后两侧一起考虑累加得到答案 时…
题目 LOJ523 官方题解 分析 由于某些原因,以下用「左侧点」和「右侧点」分别代替题目中的「妹子」和「男生」. 根据题意,显然能得出一个左侧点只能向一个或两个右侧点连边.这似乎启发我们把左侧点不看成点,而看成关于右侧的两个点之间的「关系」(更正:不看题解根本想不到).换句话说,把左侧点看成边,右侧点看成点,就得到了一张 \(n\) 个点 \(m\) 条边的新图.如果一个左侧点向 \(a\) 和 \(b\) 两个右侧点连边,就在新图中加入一条连接 \((a,b)\) 的边(左侧点只连接一个右侧…
题目描述 $Treeland$国有$n$座城市,其中$1$号城市是首都,这些城市被一些单向高铁线路相连,对于城市$i\neq 1$,有一条线路从$i$到$p_i(p_i<i)$.每条线路都是一样长的,通过花费时间也是一样长的.这个国家的每一个城市都有一种特产,整个国家有$m$种特产(不同城市可能又相同的特产),其中城市$i$的特产用$a_i$表示.小$C$和他的几位$A$队爷朋友(总共$c$人,$2\leqslant c\leqslant 5$)正在$Treeland$国游玩,他们准备在一个城市…
题意 地上 \(1\) 到 \(m\) 个位置摆上椅子,有 \(n\) 个人要就座,每个人都有座位癖好:选择 \(\le L\) 或者 \(\ge R\) 的位置.问至少需要在两边添加多少个椅子能让所有人坐满. \(m\le n\le 2\times 10^5\) 分析 因为最后的形式一定是左边和右边连续的一段+一些新加入的椅子.只需要求出所有人构成的子集 \(|x|-|\digamma (x)|\) 的最大值,不需要知道具体哪些椅子参与了完美匹配. 注意到区域的并除了全集以外仍然可以用 \([…
充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有\(\lvert X \rvert \leq \lvert Y \rvert\)).G中有一组无公共点的边,一端恰好为组成X的点(也就是存在完美匹配)的充分必要条件是:X中的任意k个点至少与Y中的k个点相邻,即对于X中的一个点集W ,令N(W)为W的所有邻居, 霍尔定理即对于任意W,\(\lvert W\rvert \leq \lvert N(W)\rvert\) 证明 1.必…
题目链接 首先Bi之间的大小关系没用,先对它排序,假设从小到大排 那么每个Ai所能匹配的Bi就是一个B[]的后缀 把一个B[]后缀的匹配看做一条边的覆盖,设Xi为Bi被覆盖的次数 容易想到 对于每个i∈[1,m]都要满足 Xi-i >= 0,即min{Xi-i}>=0 (Hall定理) 用线段树维护即可 感觉不需要霍尔定理也能看出来(因为就是显然吧..) //583ms 4140KiB #include <cstdio> #include <cctype> #inclu…
type node=^link; link=record des:longint; next:node; end; var n,m,i,t,num:longint; p:node; nd:..] of node; mat:..] of longint; vis:..] of boolean; sel:..] of longint; function find(po:longint):boolean; var p:node; begin p:=nd[po]; while p<>nil do be…
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. 偶尔也会打一些比赛找找手感(比如HHHOJ的比赛,Luogu比赛,以及comet OJ上之前的CCPC题) CF和CC看情况,主要是我真的不太喜欢读英文题的恐怖感觉233 希望这段时间的努力可以让我不跪省选吧 2-26 早上晨跑完了就和杨浩讲了停课的事,不出意外地很轻松就通过了. 然后回班拿了点东…
这是Lowest JN dalao昨天上课讲的一道神题其实是水题啦 题意很简单,我们也很容易建模转化出一个奇怪的东西 首先我们对b进行sort,然后我们就可以通过二分来判断出这个数可以和哪些数配对 然后我们稍微想一下就可以知道:每一段区间都是b数组后缀的形式 证明很简单,如果假设当前的数与第\(i\)位上的\(b_i\)不匹配,那么对于比\(b_i\)更小的\(b_{i-1}\)肯定是无法匹配的 然后我们可以转化为一个类似于二分图的完美匹配的问题,只不过其中匹配的数如上面所言是后缀的形式 然后我…
直接套用霍尔定理. 由于A有多个选择,考虑维护B是否合法. 首先B数组的顺序显然是没有用的,可以直接排序. 然后每个A就都变成了向一个后缀连边. 对于B,原本需要check每一个集合是否满足|u|<=|v| 但实际上,只需要考虑最可能导致不合法的条件,也就是让等式右边保持不变的情况下,左边尽可能的大,如果还合法,就可以判定合法. 对于B,显然对于i<j,一定有F[i]<F[j],F数组是B在A能匹配到的个数. 因此,需要check的只是B的一些前缀. 因此,我们只需要是每一个位置都满足i…
[BZOJ 1135][POI2009]Lyz 题意 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的溜冰鞋. 有 \(m\) 次操作,每次包含两个数 \(r_i,x_i\) 代表来了 \(x_i\) 个 $r_i \(号脚的人.\)x_i$ 为负,则代表走了这么多人. 对于每次操作,输出溜冰鞋是否足够.足够输出 TAK, 否则输出 NIE. \(n\le 2\times 10^5,m\le5\ti…
[2018HN省队集训D5T2] party 题意 给定一棵 \(n\) 个点以 \(1\) 为根的有根树, 每个点有一个 \([1,m]\) 的权值. 有 \(q\) 个查询, 每次给定一个大小为 \(c\) 的点集, 点集中的每个点都可以选择若干从自身到所有点的LCA的路径上的点的权值. 要求所有点选取的权值之间都不能重复且每个点选择的权值种类数相等. 求最大的总种类数量. \(n\le 3\times 10^5,m\le 1000, q\le 5\times 10^4,c\le5\). 题…
决定把掌握不熟练或是模型见的少的知识点在这里列一列 希望能在自己AFO前成功get技能点吧…… 优先级:动态规划-分治-字符串-图论-数据结构-数学-计算几何-其它 动态规划 1.四边形不等式优化 2.斯坦纳树 3.凸优化(例题:林克卡特树) 4.非单调性的斜率优化(维护凸包) 5.插头$dp$ 6.动态$dp$ 7.笛卡尔树 分治 1.整体二分 2.cdq分治 3.对时间分治 字符串 1.(广义)后缀自动机 2.后缀树 3.LCP 4.最小表示法 5.后缀排序 6.AC自动机  7.回文自动机…
题面 板板讲的霍尔定理 霍尔定理:一张二分图有完全匹配的充要条件是对于任$i$个左部点都有至少$i$个右部点与它们相邻.放在这个题里就是说显然最容易使得鞋不够的情况是一段连续的人,那就维护一下最大子段和就好了=.= #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; *N],rr[*N],len[*N],val[*N]; long long n,m,k,d,t1,t2…
HNOI2018省队集训 Day 1 流水账 T1 tree 换根+求\(lca\)+求子树和,一脸bzoj3083遥远的国度的既视感.子树和讨论一下就好了,\(lca\)?也是大力讨论一波. 先写了个线段树标记永久化,一发过了小样例,然后大样例...没几组询问就\(WA\)了.写了个暴力,每次输出求出来的\(lca\)(我怎么这么机智啊),发现\(WA\)了,然后就对着自己的大力讨论大力魔改.大概是\(10:00\)的时候大样例终于过了,没写拍(因为不会写\(win\)下的拍qaq). T2…
持续更新! 基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. ..怎么说呢,最基础的模板我就我不说了吧qwq,具体可以参考一下这位大佬写的博客:最大流,最小割,费用流 费用流 跑最大费用流的时候可以把边权都变成负的,然后按照原先的方法跑最小费用流即可. 每个点只能经过一次的时候,就拆点,然后两个点之间连容量为1费用为0的边.连路径的时候,强制从v'向u连边. 经典费用流模型 连续M个元素最多选K个 给你N个元素,每个元素都有一个权值ai(可正可负),要求从中你选出一些,满足…
第一次用霍尔定理做题..简单的来说,就是判断一张二分图上是否存在完美匹配,只需要证明对于 \(a\) 集合中的任意 \(k\) 个点来说,都与 \(b\) 集合中的 \(k\) 个点有边相连.如果不满足,那么最大匹配数就是两个集合中有连边的点数最大的差. 这道题目二分图匹配的解法是非常显然的,让 \(i\) 点和对面的 \(1 ->  l[i]\), \(r[i]  ->  m\) 点连边,判断是否存在完美匹配即可.但点数太多了,我们考虑使用霍尔定理来求解.如果我们固定右边选择的点为 \(1-…
day 0: 周五, 鸽了概统课,早上和紫金港的几位小伙伴一起打车去萧山机场,从咸阳机场到西北工业大学坐了五十多个站的公交车,感觉身体被掏空.晚上在宾馆本来打算补之前训练的一个题,想想还是先花个十来分钟把数据结构课的作业做了吧,结果写出了奇怪的bug,debug两个多小时还是没有找出原因,心态爆炸(我还是退群吧),于是和一堆学长去楼下吃了夜宵(锅盔+羊肉串),快一点了才睡觉. 感觉宾馆有些垃圾,被单出现了不明血迹,热水壶里满是黄色的锈,马桶半天才能冲一次,水龙头里出来的水是黄色的,无力吐槽. d…