今日头条第四题

#include<bits/stdc  .h>
using namespace std;
const int maxn=1e5 5;
int a[maxn],b[maxn],c[maxn];
int x[maxn],y[maxn],z[maxn];
int ans[maxn],sum[maxn];
/*
	求ai>=x&&bi>=y的个数,有q组询问
	如果保证ai>=x,那么只要保证查询bi>=y的有多少个就可以了
	把a b按照a从大到小排序
	把x y按照x从大到小排序
	这样,对于一个(xi,yi)只要把所有a>=xi的,b加入树状数组或者线段数
	就能很快的查询b>=yi的个数
	总体复杂度O((n q)logn maxn)
*/

bool cmp1(int i,int j){
	if(a[i]==a[j])return b[i]>b[j];
	return a[i]>a[j];
}
bool cmp2(int i,int j){
	if(x[i]==x[j])return y[i]>y[j];
	return x[i]>x[j];
}

int lowbit(int x){return x&(-x);}

int add(int x){
	while(x<maxn){
        sum[x]  ;
        x =lowbit(x);
    }
}

int Sum(int x){
    int ret=0;
    while(x>0){
        ret =sum[x];
        x-=lowbit(x);
    }
    return ret;
}
int main(){
	//freopen("in.txt","r",stdin);
	for(int i=1;i<maxn;i  )c[i]=i,z[i]=i;
	int n,q;
	cin>>n>>q;
	for(int i=0;i<n;i  )cin>>a[i];
	for(int i=0;i<n;i  )cin>>b[i];
	sort(c,c n,cmp1);
	
	//离线
	for(int i=0;i<q;i  )cin>>x[i]>>y[i];
	sort(z,z q,cmp2);
	
	int top=0;
	
	for(int i=0;i<q;i  ){
		while(top<n&&a[c[top]]>=x[z[i]])add(b[c[top  ]]);
		ans[z[i]]=top-Sum(y[z[i]]-1);
	}
	
	for(int i=0;i<q;i  )
		cout<<ans[i]<<endl;
	
	return 0;
}
全部评论
q此查询应该是o(qlogn)总的复杂度是O(qlogn+nlogn)
点赞 回复 分享
发布于 2017-04-05 09:48
楼主有地方写错了,树状数组sum对某个元素进行修改时: int add(int x){ while(x<maxn){ c[x]++;//这里应该改成sum[x]++; x+=lowbit(x); } }
点赞 回复 分享
发布于 2017-04-04 10:39
能不能把51nod的题号说一下,谢啦
点赞 回复 分享
发布于 2017-03-31 10:25
前端考了这题 只过了 30%
点赞 回复 分享
发布于 2017-03-30 22:48
51nod是什么
点赞 回复 分享
发布于 2017-03-30 22:42

相关推荐

02-24 10:34
门头沟学院 Java
已注销:之前发最美的女孩基本爱答不理,发最帅的hr终于有反馈了,女孩子也要自信起来
点赞 评论 收藏
分享
群星之怒:1.照片可以换更好一点的,可以适量P图,带一些发型,遮住额头,最好穿的正式一点,可以适当P图。2.内容太少。建议添加的:求职意向(随着投递岗位动态更改);项目经历(内容太少了建议添加一些说明,技术栈:用到了什么技术,还有你是怎么实现的,比如如何确保数据传输稳定的,角色注册用到了什么技术等等。)项目经历是大头,没有实习是硬伤,如果项目经理不突出的话基本很难过简历筛。3.有些内容不必要,比如自我评价,校内实践。如果实践和工作无关千万别写,不如多丰富丰富项目。4.排版建议:建议排版是先基础信息,然后教育背景(要突出和工作相关的课程),然后专业技能(一定要简短,不要长篇大论,写你会什么,会的程度就可以),然后是项目经历(一定要详细,占整个简历一定要超过一半,甚至超过百分之70都可以)。最后如果有一部分空白的话可以填补上校内获得的专业相关的奖项,没有就写点校园经历和自我评价。5.技术一定要够硬,禁得住拷打。还有作息尽量保证正常,不要太焦虑。我24双非本科还是非科班,秋招春招各找了一段实习结果都没有转正,当时都想噶了,最后6月份在校的尾巴也找到一份工作干到现在,找工作有时很看运气的不要急着自我否定。 加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务