ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LOJ6062「2017 山东一轮集训 Day2」Pair

2021-10-16 07:31:28  阅读:148  来源: 互联网

标签:rs int tree void Day2 mid LOJ6062 tag Pair


https://loj.ac/p/6062

考虑给 \(b\) 和 \(a\) 要匹配的子串分别排序,则肯定是最大最小、次大次小来匹配
具体的,设 \(c_i\) 表示 \(a_i\) 能和 \(b\) 中多少数匹配成功,则给 \(c_i\) 排序后应满足 \(c_i\ge i\)
但这个条件不好维护,设 \(s_i\) 表示 \(c_j\le i\) 的 \(j\) 的个数,那么条件可以转化为 \(i-s_i\ge 0\)
于是就开一个线段树第 \(i\) 位维护 \(i-s_i\) 的值即可,查询的时候查全局最小值

#define N 150006
struct Node{
	Node *ls,*rs;
	int x,tag;//num of c <= i
	inline void pushup(){x=std::min(ls->x,rs->x);}
	inline void pushdown(){
		if(!tag) return;
		ls->x+=tag;rs->x+=tag;
		ls->tag+=tag;rs->tag+=tag;
		tag=0;
	}
}dizhi[N*2],*root=&dizhi[0];int tot;
void build(Node *&tree,int l,int r){
	tree=&dizhi[++tot];
	if(l==r) return tree->x=l,void();
	int mid=(l+r)>>1;
	build(tree->ls,l,mid);build(tree->rs,mid+1,r);
	tree->pushup();
}
void change(Node *tree,int l,int r,int ql,int qr,int k){
	if(ql<=l&&r<=qr) return tree->x+=k,tree->tag+=k,void();
	tree->pushdown();
	int mid=(l+r)>>1;
	if(ql<=mid) change(tree->ls,l,mid,ql,qr,k);
	if(qr>mid) change(tree->rs,mid+1,r,ql,qr,k);
	tree->pushup();
}
int a[N],b[N],c[N];
int main(){
	int n=read(),m=read(),h=read();
	for(int i=1;i<=m;i++) b[i]=read();std::sort(b+1,b+1+m);
	for(int i=1;i<=n;i++) a[i]=read(),c[i]=m-(std::lower_bound(b+1,b+1+m,h-a[i])-b)+1;
//		for(int i=1;i<=n;i++) printf("%d ",c[i]);EN;
	build(root,0,m);
	int ans=0;
	for(int i=1;i<=n;i++){
		change(root,0,m,c[i],m,-1);
		if(i>m) change(root,0,m,c[i-m],m,1);
		if(i>=m) ans+=(root->x>=0);
	}
	printf("%d\n",ans);
	return 0;
}

标签:rs,int,tree,void,Day2,mid,LOJ6062,tag,Pair
来源: https://www.cnblogs.com/suxxsfe/p/15413324.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有