[AtCoder ARC076] F Exhausted?】的更多相关文章

霍尔定理 + 线段树? 咱学学霍尔定理... 霍尔定理和二分图完美匹配有关,具体而言,就是定义了二分图存在完美匹配的充要条件: 不妨设当前二分图左端集合为 X ,右端集合为 Y ,X 与 Y 之间的边集为 E 令 \(\omega(x)\) 表示在 Y 中能通过 E 与 x 中元素相连的元素数量,那么 $\forall x\in X, |x| \le |\omega(x)| $ 为 X 与 Y 存在完美匹配的充要条件... 然后咱发现,多加上 t 个人的话,也就是必然会让 \(|\omega(x…
---题面--- 题目大意: 有n个人,m个座位,每个人可以匹配的座位是[1, li] || [ri, m],可能有人不需要匹配座位(默认满足),问最少有多少人不能被满足. 题解: 首先可以看出这是一个二分图匹配,根据hall定理,我们只需要求出max(人的子集大小 -  被选出的人可以选的座位集合大小). 但是枚举人的复杂度太高,所以考虑枚举座位集合,因为每个人的可选区间都是一段前缀or后缀,因此要表达一个合法的座位集合,我们只需要所有人中最右边的li和最左边的ri即可. 如图所示: 因此这个…
题目链接 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…
2017国家集训队作业[arc076d/f][Exhausted?] 题意: ​ 有\(N\)个人,\(M\)把椅子,给出\(...L_i.R_i\)表示第\(i\)个人可以选择编号为\(1\sim L_i\)和\(R_i\sim M\)的椅子,求至少要加多少张椅子才能让每人都有椅子坐?(\(N,M\le2*10^5\)) 题解: ​ 场上看到这道题,woc,这不是sb的线段树或前缀和优化网络流建边二分图匹配吗?(这沙茶= =) ​ 听dcx说,这题网络流建出来是分层图,流量是\(INF\)的可…
Atcoder abc187 F Close Group 题目 给出一张n个点,m条边的无向图,问删除任意数量的边后,留下来的最少数量的团的个数(\(n \le 18\) ) 题解 核心:枚举状态+动态规划 第一次枚举状态,对状态进行预处理,判断状态里所有的1是否能够形成一个团 第二次枚举状态S,再对每个状态枚举子状态T,假如T是一个团,那么 就可以进行动态递推 \[dp[S]=min(dp[S],dp[S\wedge T]+1) \] 复杂度分析 状态S中1的个数有x个,那S的子集就有 \(2…
题意 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个人抢m个凳子,第i个人做的位置必须小于li或大于ri,问最少几个人坐不上. 这是一个二分图最大匹配的问题,hall定理可以用来求二分图最大匹配. 关于hall定理及证明,栋爷博客里有:http://blog.csdn.net/werkeytom_ftd/article/details/65658944 可以推出答案为$max\{|x|-Γ(X)\}$,x为左侧点的一个子集,Γ(X)为这些点能到达的右侧点的集合. 证明: 因为二分图有完美匹配的充要条件是对于所有的x都有Γ(X)>=|x…
传送门 sxy题解: //Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<vector> #include<queue> #include<cmath> #define For(i,a,b) for(int i=(a);i<=(b);i++)…
题面 题目大意: 给你\(m\)张椅子,排成一行,告诉你\(n\)个人,每个人可以坐的座位为\([1,l]\bigcup[r,m]\),为了让所有人坐下,问至少还要加多少张椅子. Solution: 为什么加椅子?我们可以在最左边或最右边一直加直到人人都有座位. 首先这道题目抽象成二分图很简单,然后我们可以只要求解出人与座位的最大匹配是多少,总人数减去即可,但跑二分图最大匹配显然会超时,我们就可以往霍尔定理方面想. 然后你还需要知道一个霍尔定理推论:假设某个人的集合为\(X\),这个集合所对应的…
http://s8pc-3.contest.atcoder.jp/tasks/s8pc_3_f (题目链接) 题意 有一个长度为$N$的数列$A$,初始为$0$.$Q$次操作,每次两个参数$x,y$. 在$A[1]...A[x]$中找出最小的数,如果有多个找编号最小的,假设为$u$. $A[u]++$. 重复这个过程$y$次. 输出最后的$A$序列. Solution 可以发现,数列$A$肯定是单调不降的,那就非常好做了. 用一个线段树维护数列,区间赋值,支持区间求和.在询问区间中二分找到一个位…