Star HDU1541
Posted bxd123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Star HDU1541相关的知识,希望对你有一定的参考价值。
看到图和坐标就想到了用二维数组来写 但是连数组的开不下 写好了也爆内存
没看到题目是按照y坐标升序给的坐标
这样就可以忽略y坐标 进行一维的树状数组
#include<bits/stdc++.h> using namespace std; #define N 32050 int c[N]; int ans[N]; int lowbit(int i) { return i&-i; } void update(int x,int v) { for(int i=x;i<N;i+=lowbit(i)) c[i]+=v; return ; } int sum(int x) { int ans=0; for(int i=x;i>0;i-=lowbit(i)) ans+=c[i]; return ans; } int main() { int k; while(scanf("%d",&k)==1) { memset(c,0,sizeof(c)); memset(ans,0,sizeof(ans)); for(int i=1;i<=k;i++) { int a,b; scanf("%d%d",&a,&b); a++; ans[ sum(a) ]++; update(a,1); } for(int i=0;i<k;i++) printf("%d ",ans[i]); } }
以上是关于Star HDU1541的主要内容,如果未能解决你的问题,请参考以下文章