题目链接:https://vjudge.net/problem/POJ-2352

题意:在直角坐标系中给出n个点的 (x,y),(0<=x,y<=32000),定义每个点的level为(x',y')的数量,其中x'<=x,y'<=y。输出所有level的点的个数。

思路:这几天开始写树状数组的题,加油!!因为输入为按y升序排列,在y相等时按x升序排列。所以当输入点i时,对其level有贡献的点一定在点i之前,而不会在其后。所以点i的level为之前出现的点的横坐标<=xi的个数。然后就特别适合用树状数组和线段树来解了,用树状数组tr[x]来保存横坐标属于[1,x]之间的点的个数,每次输入进行区间查询和单点修改。要注意的是这里要把x加一,因为题目的x从0开始,相当于所有点右移一位。

AC代码:

#include<cstdio>
#include<cctype>
using namespace std;inline int read(){int x=0,f=0;char c=0;while(!isdigit(c)){f|=c=='-';c=getchar();}while(isdigit(c)){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return f?-x:x;
}int n,tr[32005],ans[15005];int lowbit(int x){return x&(-x);
}void update(int x){while(x<=32001){++tr[x];x+=lowbit(x);}
}int query(int x){int ans=0;while(x>0){ans+=tr[x];x-=lowbit(x);}return ans;
}int main(){n=read();for(int i=0;i<n;++i){int x=read()+1,y=read()+1;++ans[query(x)];update(x);}for(int i=0;i<n;++i)printf("%d\n",ans[i]);return 0;
}

转载于:https://www.cnblogs.com/FrankChen831X/p/10799328.html

poj2352(树状数组)相关推荐

  1. [POJ2352] Stars 夜空星辰 - 树状数组

    题目描述 夜空中有N颗恒星(N≤100000),每颗恒星具有其坐标(x, y)(0≤x, y≤100000).现在,天文学家要对这些恒星进行分类,分类的标准如下:对于任意一颗恒星S(x,y),如果存在 ...

  2. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】

    树状数组(Binary Index Tree) 树状数组可以解决可以转化为前缀和问题的问题 这是一类用以解决动态前缀和的问题 (有点像线段树简版) 1.对于 a1 + a2 + a3 + - + an ...

  3. 数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结

    文章目录 树状数组 lowbit 线段树与树状数组 单点修改 区间查询 区间修改 区间求和 二维树状数组 离线树状数组 例题 POJ:stars MooFest [SDOI2009]HH的项链 Tur ...

  4. 树状数组萌新讲解+基础习题【一点一滴】

    树状数组基础篇 树状数组讲点 中文名:树状数组 英文名:Binary Indexeds Tree 英译中:二进制索引树 这特么多清楚 引入: 给你n个数 1. 求区间的的和 2. 改变某个值 然后朴素 ...

  5. 树状数组相关应用之平面范围求和问题

    平面范围求和 此类问题实际上是树状数组推广到二维的情形 平面子矩阵求和:POJ-2352 此题是求[0–x][0–y]矩阵中除自身[x][y]外的求和 二维解法: #include <iostr ...

  6. 洛谷 P5057 [CQOI2006]简单题(树状数组)

    嗯... 题目链接:https://www.luogu.org/problem/P5057 首先发现这道题中只有0和1,所以肯定与二进制有关.然后发现这道题需要支持区间更改和单点查询操作,所以首先想到 ...

  7. Color the ball(HDU1556)树状数组

    每次对区间内气球进行一次染色,求n次操作后后所有气球染色次数. 树状数组,上下区间更新都可以,差别不大. 1.对于[x,y]区间,对第x-1位减1,第y位加1,之后向上统计 #include<b ...

  8. 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组

    [BZOJ2434][NOI2011]阿狸的打字机 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P ...

  9. Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)

    题意: 线段树做法 分析: 因为每次都是在当前位置的前缀区间查询最大值,所以可以直接用树状数组优化.比线段树快了12ms~ 代码: #include<cstdio> #include< ...

最新文章

  1. fatal error LNK1181: 无法打开输入文件“libx264.lib”
  2. ntoskrnl.exe文件丢失或损坏的解决方法
  3. mysql50到例题_关于MySQL的经典例题50道 答案参考
  4. android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址
  5. java设计模式迭代器模式_迭代器模式和Java
  6. 创建一个学生信息表,与页面分离
  7. 状态压缩 之 UVA 10944 - Nuts for nuts..
  8. 《数据库设计入门经典》读书笔记——第二章:工作场所中的数据库建模
  9. [Java] 1006. Sign In and Sign Out (25)-PAT甲级
  10. linux rz上传文件及出错解决方案
  11. linux挂载nfs权限不够,无法写入挂载点(nfs-server),获得“权限被拒绝”
  12. openGauss 训练营第三期结营啦!PPT 85个FAQ大放送!文末附51位结营学员名单
  13. Web前端技术基础实验报告四之列表实现简易网站导航
  14. 解决荣耀magicbook Linux版 无线网卡驱动安装不上的问题
  15. 互联网寒冬?软件测试行业饱和了?为何每年还会增加40万测试员?
  16. css 细线表格,如何在Dreamweaver中制作细线表格?
  17. PCL之kd-tree详解
  18. 通过rustlings源码了解rust如何从命令行参数里面获取值的方式
  19. 【虚幻引擎】实现类LOL缓慢扣血血条
  20. QFont/QFontInfo方法功能(QT5.12)

热门文章

  1. STL——vector
  2. Html5 绘制旋转的太极图
  3. VS2010中经常使用的快捷键
  4. linux下删除乱码文件
  5. PHP_编码问题汇总
  6. X-UA-Compatible也无法解决的IE11兼容问题
  7. LVM 逻辑卷的扩容/缩容
  8. 使用java进行erlang字符解析
  9. js插件---IUpload文件上传插件(包括图片)
  10. Python--matplotlib 绘图可视化练手--折线图/条形图