您的位置:首页 > 其它

pku 2352 Stars(线段树)

2009-08-30 12:12 369 查看
输入居然都帮忙排好序了,把最关键的一步给做了。

线段树,这里我没给节点left,right域,而是在函数递归的时候直接传过去。

#include <iostream>
using namespace std;
const int maxn=32005;
int tree[maxn*8],ans[15000];
int Search(int i,int x,int left=0,int right=maxn)
{
tree[i]++;
if(x==right) return tree[i]-1;//把自己减掉
int mid=(left+right)/2;
if(x<=mid) return Search(i*2,x,left,mid);
else return tree[i*2]+Search(i*2+1,x,mid+1,right);
}
int main()
{
int n,x,y;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&x,&y);
ans[Search(1,x)]++;
}
for(int i=0;i<n;i++)
printf("%d/n",ans[i]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  search tree ini