标签:line alt 如何 src tco span 决定 ace href
给你\(m\)张椅子,排成一行,告诉你\(n\)个人,每个人可以坐的座位为\([1,l]\bigcup[r,m]\),为了让所有人坐下,问至少还要加多少张椅子。
在这题里,这个就是至少需要添加的椅子数目,所以我们要找出最大的\(\Gamma(X)\)
这道题好理解吧(毛线,我起码看了一个下午才看懂,去吃饭的路上突然懂了23333)
对了贪心也可以过这道题,只不过做法没这么优美罢了
枚举出\(l\)后,找最大值一定是从\([l+1,m+1]\)中找
First, 你枚举的\(r\)要\(>l\)。
Second,\(|X|=n\)已经被考虑(没那个必要了,其实你从\(l+1\)开始也不影响)
//It is coded by ning_mew on 7.16
#include<bits/stdc++.h>
#define ls(x) (x*2)
#define rs(x) (x*2+1)
using namespace std;
const int maxn=2e5+7,inf=1e9+7;
int n,m,ans=0;
struct Opt{int l,r;}p[maxn];
struct Node{int lazy,maxx;}node[maxn*4];
bool cmp(const Opt &A,const Opt &B){return A.l<B.l;}
void pushdown(int num,int nl,int nr){
if(!node[num].lazy)return;
int lz=node[num].lazy; node[num].lazy=0;
node[ls(num)].maxx+=lz;node[ls(num)].lazy+=lz;
node[rs(num)].maxx+=lz;node[rs(num)].lazy+=lz;
}
void update(int num){node[num].maxx=max(node[ls(num)].maxx,node[rs(num)].maxx);}
void build(int num,int nl,int nr){
node[num].lazy=0; if(nl==nr){node[num].maxx=nr-m-1;return;}
int mid=(nl+nr)/2;
build(ls(num),nl,mid);build(rs(num),mid+1,nr);
update(num);
}
void add(int num,int nl,int nr,int ql,int qr,int ad){
if(ql<=nl&&nr<=qr){node[num].maxx+=ad;node[num].lazy+=ad;return;}
if(nr<ql||qr<nl)return;
int mid=(nl+nr)/2;pushdown(num,nl,nr);
add(ls(num),nl,mid,ql,qr,ad);add(rs(num),mid+1,nr,ql,qr,ad);
update(num);return;
}
int quary(int num,int nl,int nr,int ql,int qr){
if(ql<=nl&&nr<=qr)return node[num].maxx;
if(nr<ql||qr<nl)return -inf;
int mid=(nl+nr)/2;pushdown(num,nl,nr);
return max(quary(ls(num),nl,mid,ql,qr),quary(rs(num),mid+1,nr,ql,qr));
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d%d",&p[i].l,&p[i].r);
sort(p+1,p+n+1,cmp);p[n+1].l=inf;
build(1,0,m+1);
for(int i=1;i<=n;i++){
add(1,0,m+1,0,p[i].r,1);
if(p[i].l!=p[i+1].l&&p[i].l<=m-1)ans=max(ans,quary(1,0,m+1,p[i].l+2,m+1)-p[i].l);
}ans=max(ans,n-m);printf("%d\n",ans);
return 0;
}
博主蒟蒻,随意转载。但必须附上原文链接:http://www.cnblogs.com/Ning-Mew/,否则你会场场比赛暴0!!!
【题解】 AtCoder ARC 076 F - Exhausted? (霍尔定理+线段树)
标签:line alt 如何 src tco span 决定 ace href
原文地址:https://www.cnblogs.com/Ning-Mew/p/9320708.html