博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj - 2352 Stars
阅读量:7228 次
发布时间:2019-06-29

本文共 1151 字,大约阅读时间需要 3 分钟。

典型线段树,因为Input已经按Y坐标处理过了,所以程序只需处理X值就行了,也就是查询、更新。

1 #include 
2 #include
3 using namespace std; 4 const int N = 32005; 5 int tree[4*N],D; 6 int level[15010]; 7 void update(int n) 8 { 9 for(; n^1; n>>=1)10 tree[n>>1] = tree[n] + tree[n^1];11 }12 void query(int cur,int x,int y,int s,int t,int &ans)13 {14 int mid = (x+y)>>1;15 if(x >= s && y <= t)16 {17 ans += tree[cur];18 return ;19 }20 if(s <= mid)21 query(cur<<1,x,mid,s,t,ans);22 if(mid+1 <= t)23 query(cur<<1|1,mid+1,y,s,t,ans);24 }25 int main()26 {27 int n,x,y,i,j,ans;28 for(D = 1; D < 32000; D <<=1);29 while(cin>>n)30 {31 memset(tree,0,sizeof(int) *2*D);32 memset(level,0,sizeof(int) *n);33 for(j = 0; j < n; j++)34 {35 cin>>x>>y;36 ans = 0;37 query(1,0,D-1,0,x,ans);38 level[ans]++;39 tree[D+x]++;40 update(D+x);41 }42 for(i = 0; i < n; i++)43 cout<
<

 

转载于:https://www.cnblogs.com/lzxskjo/archive/2012/07/14/2591014.html

你可能感兴趣的文章
Bytescout Spreadsheet SDK for.NET
查看>>
我的友情链接
查看>>
Haproxy的三种保持客户端会话保持方式
查看>>
iOS的数学函数
查看>>
python 模块 chardet下载及介绍(转)
查看>>
能力工场--关于在JavaScript中使用EL表达式的问题
查看>>
NFS服务器设置
查看>>
s:iterator 中的status 使用方法
查看>>
cocos2d-x 源码剖析系列
查看>>
IT系统架构设计
查看>>
Nginx虚拟主机配置实践(一)
查看>>
细谈Spring(一)spring简介
查看>>
网络工程师的面试题
查看>>
nginx启动脚本
查看>>
常用输入法框架简介
查看>>
记录新机房建设。20130629
查看>>
安装ntop
查看>>
ssh远程登录讲解
查看>>
mysql的备份脚本
查看>>
linux下mysql的root密码忘记解决方法
查看>>