AtCoder Regular Contest 076 F - Exhausted?
题意:
n个人抢m个凳子,第i个人做的位置必须小于li或大于ri,问最少几个人坐不上。
这是一个二分图最大匹配的问题,hall定理可以用来求二分图最大匹配。
关于hall定理及证明,栋爷博客里有:http://blog.csdn.net/werkeytom_ftd/article/details/65658944
可以推出答案为$max\{|x|-Γ(X)\}$,x为左侧点的一个子集,Γ(X)为这些点能到达的右侧点的集合。
证明:
因为二分图有完美匹配的充要条件是对于所有的x都有Γ(X)>=|x|,所以至少要再加$max\{|x|-Γ(X)\}$个点才能让这张图有完美匹配。
考虑向右侧新加$max\{|x|-Γ(X)\}$个点,与左侧所有点都有边,显然对于所有的x都有Γ(X)>=|x|,既这张图有完美匹配。
所以最少加$max\{|x|-Γ(X)\}$个点。
然后就可以枚举Γ(X),用线段树维护|x|。
#include<bits/stdc++.h>
#define N 200005
#define pd push_back
#define ls x<<1,l,mid
#define rs x<<1|1,mid+1,r
using namespace std;
int n,m;
vector<int>s[N];
int t[N<<2],f[N<<2];
void build(int x,int l,int r)
{
if(l==r){t[x]=l;return ;}
int mid=(l+r)>>1;build(ls);build(rs);
t[x]=max(t[x<<1],t[x<<1|1]);
}
void add(int x,int l,int r,int ll,int rr)
{
if(l>=ll&&r<=rr)
{
t[x]++;f[x]++;return ;
}
int mid=(l+r)>>1;
if(ll<=mid)add(ls,ll,rr);
if(rr>mid)add(rs,ll,rr);
t[x]=f[x]+max(t[x<<1],t[x<<1|1]);
}
int qur(int x,int l,int r,int ll,int rr)
{
if(l>=ll&&r<=rr)return t[x];
int mid=(l+r)>>1;
if(ll>mid)return f[x]+qur(rs,ll,rr);
if(rr<=mid)return f[x]+qur(ls,ll,rr);
return f[x]+max(qur(ls,ll,rr),qur(rs,ll,rr));
}
int main()
{
scanf("%d%d",&n,&m);
int ans=0;
for(int i=1;i<=n;i++)
{
int t1,t2;scanf("%d%d",&t1,&t2);s[t1].pd(t2);
}
build(1,0,m+1);
for(int i=0;i<=m;i++)
{
for(auto j:s[i])add(1,0,m+1,0,j);
ans=max(ans,qur(1,0,m+1,i+1,m+1)-i-m-1);
}
printf("%d\n",max(n-m,ans));
return 0;
}
AtCoder Regular Contest 076 F - Exhausted?的更多相关文章
- 【AtCoder Regular Contest 076 F】Exhausted (贪心)
Description 机房里有M台电脑排成一排,第i台电脑的坐标是正整数i. 现在有N个OIer进入了机房,每个OIer需要一台电脑来学tui习ji,同时每个OIer对自己电脑所处的坐标范围有一个要 ...
- AtCoder Regular Contest 069 F Flags 二分,2-sat,线段树优化建图
AtCoder Regular Contest 069 F Flags 二分,2-sat,线段树优化建图 链接 AtCoder 大意 在数轴上放上n个点,点i可能的位置有\(x_i\)或者\(y_i\ ...
- AtCoder Regular Contest 076
在湖蓝跟衡水大佬们打的第二场atcoder,不知不觉一星期都过去了. 任意门 C - Reconciled? 题意:n只猫,m只狗排队,猫与猫之间,狗与狗之间是不同的,同种动物不能相邻排,问有多少种方 ...
- AtCoder Regular Contest 074 F - Lotus Leaves
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_d 题目大意: 给定一个\(H×W\)的网格图,o是可以踩踏的点,.是不可踩踏的点. 现有一人 ...
- AtCoder Regular Contest 076 E - Connected?
题目传送门:https://arc076.contest.atcoder.jp/tasks/arc076_c 题目大意: 给定一个\(R×C\)的矩阵,然后给定\(N\)对点,每对点坐标为\((X_{ ...
- AtCoder Regular Contest 081 F - Flip and Rectangles
题目传送门:https://arc081.contest.atcoder.jp/tasks/arc081_d 题目大意: 给定一个\(n×m\)的棋盘,棋盘上有一些黑点和白点,每次你可以选择一行或一列 ...
- AtCoder Regular Contest 066 F Contest with Drinks Hard
题意: 你现在有n个题目可以做,第i个题目需要的时间为t[i],你要选择其中的若干题目去做.不妨令choose[i]表示第i个题目做不做.定义cost=∑(i<=n)∑(i<=j<= ...
- AtCoder Regular Contest 067 F - Yakiniku Restaurants
题意: 有n个餐厅排成一排,第i个与第i+1个之间距离是Ai. 有m种食物,每种食物只能在一个餐厅里吃,第j种食物在第i个餐厅里吃的收益是$b[i][j]$. 选择每种食物在哪个餐厅里吃,使收益减去走 ...
- AtCoder Regular Contest 059 F Unhappy Hacking
Description 题面 Solution 我们发现如果一个位置需要被退掉,那么是 \(0\) 或 \(1\) 都没有关系 于是我们想到把 \(0,1\) 归为一类 问题转化为每一次可以添加和删除 ...
随机推荐
- 使用IdentityServer4实现一个简单的Oauth2客户端模式授权
1.首先新建一个webAPI项目做为IdentityServer的服务端,提供生成Token的服务,首先修改Startup.cs文件,如下图: 2.增加一个Config.cs文件,以便于提供资源和认证 ...
- React之父子组件传递和其它一些要点
react是R系技术栈中最基础同时也是最核心的一环,2年不到获取了62.5k star(截止到目前),足可见其给力程度.下面对一些react日常开发中的注意事项进行罗列. React的组件生命周期 r ...
- VS2013软件的安装和单元测试
VS2013是什么? 微软在Builder 2013开发者大会上发布了Visual Studio 2013预览版,并且发布其程序组件库.NET 4.5.1的预览版.该软件已于北京时间2013年11月1 ...
- beta版使用说明
StudyAssistant说明书 我们的软件使用简单方便,下面就让我们在介绍软件界面的同时一同来介绍我们的软件使用方法: 1.这是我们软件的首页界面,单刀直入,简单明了,四科同时类课程,更好的帮助同 ...
- 后端返回值以json的格式返回,前端以json格式接收
以随便一个类为例子:这个例子是查询企业主营类别前5事项 一.以json数组的格式返回到前端中 (1)后端将结果绑定到param中,然后将结果以为json数组的格式返回到前端 /** * 查询企业主营类 ...
- TCP程序设计基础
1.端口与套接字 IP地址--->端口--->套接字(Socket)--->应用程序 2.TCP服务器端和客户端通信 1)服务器创建一个ServerSocket,调用accept() ...
- 开源通用爬虫框架YayCrawler-页面的抽取规则定义
本节我将向大家介绍一下YayCrawler的核心-页面的抽取规则定义,这也是YayCrawler能够做到通用的主要原因之一.如果我要爬去不同的网站的数据,尽管他们的网站采用的开发技术不同.页面的结构不 ...
- Odoo中连接mysql数据库
how to integrate Odoo with MySQL - Stack Overflowhttps://stackoverflow.com/questions/31959919/how-to ...
- yarn工具的使用
<!-- yarn init === npm init --> <!-- yarn login === npm adduser -->登录 <!-- yarn publi ...
- ESXi 更新补丁 暂时未测试 等有时间尝试一下.
下载地址: https://my.vmware.com/group/vmware/patch 使用操作图: 选择相应的zip包下载即可 更新方式: 命令方式升级ESXi主机补丁包 1.进入VMware ...