[霍尔定理] AtCoder Regular Contest 076 F Exhausted?

571人阅读 评论(1) 收藏 举报
分类:

霍尔定理 有完美匹配必然有任意 |S||N(S)|
那么这题答案就是max{S|N(S)|}

我们枚举N(S),必然是xsxt的形式
那么对其有贡献的i,满足Lis<tRi
直接扫描线

注意特殊讨论N(S)是全集的情况 这样的话不用满足Lis<tRi,值就是nm

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<vector>
#define pb push_back
using namespace std;

inline char nc(){
  static char buf[100000],*p1=buf,*p2=buf;
  return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
inline void read(int &x){
  char c=nc(),b=1;
  for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;
  for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}

const int N=200005;

int T[N<<2],F[N<<2];
inline void Build(int x,int l,int r){
  if (l==r) return void(T[x]=l);
  int mid=(l+r)>>1; Build(x<<1,l,mid); Build(x<<1|1,mid+1,r);
  T[x]=max(T[x<<1],T[x<<1|1]);
}
inline void Add(int x,int l,int r,int ql,int qr){
  if (ql<=l && r<=qr){
    T[x]++; F[x]++; return;
  }
  int mid=(l+r)>>1;
  if (ql<=mid) Add(x<<1,l,mid,ql,qr);
  if (qr>mid) Add(x<<1|1,mid+1,r,ql,qr);
  T[x]=F[x]+max(T[x<<1],T[x<<1|1]);
}
inline int Query(int x,int l,int r,int ql,int qr){
  if (ql<=l && r<=qr)
    return T[x];
  int mid=(l+r)>>1,ret=0;
  if (ql<=mid) ret=max(ret,Query(x<<1,l,mid,ql,qr));
  if (qr>mid) ret=max(ret,Query(x<<1|1,mid+1,r,ql,qr));
  return ret+F[x];
}

int n,m;
vector<int> R[N];

int main(){
  int x,y;
  freopen("t.in","r",stdin);
  freopen("t.out","w",stdout);
  read(n); read(m);
  for (int i=1;i<=n;i++) read(x),read(y),R[x].pb(y);
  int ans=0; Build(1,0,m+1);
  for (int i=0;i<=m;i++){
    for (int x:R[i])
      Add(1,0,m+1,0,x);
    ans=max(ans,Query(1,0,m+1,i+1,m+1)-i-m-1);
  }
  printf("%d\n",max(n-m,ans));
  return 0;
}
查看评论

[霍尔定理]「2017 山东一轮集训 Day2」LOJ 6062——PAIR

什么是霍尔定理这是关于二分图的一个非常重要的定理。 但是博主今天第一接触,真不愧是蒟蒻。 主要内容: 设M(U1)M(U1)为与U1U1中的点相连的点集,一个二分图U,V(|U|=|X| 感谢...
  • CHN_JZ
  • CHN_JZ
  • 2017-07-26 22:15:47
  • 1471

[AtCoder ARC076 .F] [二分图] [霍尔定理] Exhausted?

题意:地上1到m个位置摆上椅子,有n个人要就座,每个人都有座位癖好:选择位置小于等于L或者大于等于R的位置。问至少需要添加多少个椅子能让所有人坐满。 解法:显然将一个人和他能坐的所有椅子连边,形成一...
  • u013944294
  • u013944294
  • 2017-11-12 22:35:37
  • 153

AtCoder Regular Contest 076 F - Exhausted? 贪心

F - Exhausted? Time limit : 2sec / Memory limit : 256MB Score : 1000 points Problem...
  • sinat_35406909
  • sinat_35406909
  • 2018-01-23 23:25:00
  • 51

Atcoder Regular Contest 072 E Alice in Linear Land

题目大意在最开始Alice离终点的距离为D,第i天,Alice会有一个行走距离a[i],如果当前距离s>abs(s-a[i]),那么s就更新为abs(s-a[i]),s变为0时到达终点。 先给出若干...
  • samjia2000
  • samjia2000
  • 2017-04-25 22:41:45
  • 423

AtCoder Regular Contest 076 F - Exhausted (Hall's marriage theorem 或 贪心)

转化后的题意就是:有N个人,1 ~ M号座位,第i个人愿意坐的座位是[1,Li]或 [Ri,M]。设这个二分图最大匹配是X,然后输出N - X,即问最少有几个人意愿得不到满足。 思路: 在...
  • kalilili
  • kalilili
  • 2017-06-25 00:17:05
  • 466

ARC 076 F - Exhausted? -堆

题意: 有M张椅子N个人,第i个人可以坐的椅子是小于LiL_i或大于RiR_i,现在你可以加若干个椅子(可以视为在任意位子加,但不影响原有的椅子),使得N个人都能坐在椅子上。求最少要放几个椅子。 ...
  • Cherries_
  • Cherries_
  • 2017-06-27 07:54:40
  • 350

[arc076f]Exhausted?

前言你们都会hall定理推广版本。 但是我没用hall定理做啊。题目大意一个二分图,X部每个点i连了Y部的[1,Li]和[Ri,m]。 求n-最大匹配。做法考虑到二分图最大匹配等于最小覆盖。 最...
  • WerKeyTom_FTD
  • WerKeyTom_FTD
  • 2017-11-02 17:37:12
  • 182

[arc076F]Exhausted?

题目大意有m个椅子,第i个在位置i,每个椅子只能坐一个人。 有n个人,第i个人能坐的椅子的位置j需满足j≤Li或j≥Ri。 现在你可以添加若干个椅子,可以放在任意实数位置。问最少加多少个n,m≤2...
  • WorldWide_D
  • WorldWide_D
  • 2017-11-04 21:33:06
  • 163

二分图的一些基本概念

1.定义:若无向图G=的结点集V能够被划分为两个子集V1,V2,满足V1∩V2=Ø,并且V1UV2=V,使得G中任意一条边的两个端点,一个属于V1,另一个属于V2,则称G为二分图(bigraph)。二...
  • xky1306102chenhong
  • xky1306102chenhong
  • 2015-07-20 19:47:33
  • 1406
    个人资料
    持之以恒
    等级:
    访问量: 40万+
    积分: 1万+
    排名: 1233
    文章分类
    最新评论