HDU1541 Stars【树状数组】
来源:互联网 发布:linux wifi局域网ip 编辑:程序博客网 时间:2024/05/16 23:57
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1541
题目大意:
按顺序给你N颗星星的坐标,y是从小到大给出的。每个星星有一个等级,该等级为它左下角的星星
的个数。求每个等级的点有多少个。
思路:
因为y是从小到大给出的,那么可以直接忽略y,只记录x,求出(x,y)左边有多少个点就可以了。
用Ans[]数组表示每个等级的星星数。求(x,y)左边有多少个点用树状数组来做,每给一个点,就求出
x左边的点个数。作为Ans数组下标,累加个数,最后输出Ans[]数组。
AC代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int Tree[32200],Ans[32200],N = 32200;int Lowbit(int x){ return x & (-x);}int Update(int i,int x){ while(i <= N) { Tree[i] = Tree[i] + x; i += Lowbit(i); }}int Query(int n){ int sum = 0; while(n > 0) { sum += Tree[n]; n -= Lowbit(n); } return sum;}int main(){ int x,y,M; while(cin >> M) { memset(Tree,0,sizeof(Tree)); memset(Ans,0,sizeof(Ans)); for(int i = 0; i < M; ++i) { cin >> x >> y; x++; Ans[Query(x)]++; Update(x,1); } for(int i = 0; i < M; ++i) printf("%d\n",Ans[i]); } return 0;}
0 0
- hdu1541 Stars (树状数组)
- hdu1541 Stars 树状数组
- HDU1541 Stars【树状数组】
- hdu1541-Stars(树状数组)
- HDU1541 Stars 树状数组
- HDU1541 Stars (树状数组)
- HDU1541 Stars (树状数组)
- hdu1541 Stars(树状数组)
- HDU1541 Stars(树状数组)
- poj2352 && hdu1541 Stars(树状数组)
- HDU1541--Stars(树状数组)
- POJ 2352 HDU1541 Stars(树状数组)
- hdu1541 Stars 树状数组水题
- POJ 2352 HDU1541 Stars(树状数组)
- hdu1541 Stars(树状数组+解释)
- ACM-树状数组之Stars——hdu1541,poj2352
- hdu3792(Twin Prime Conjecture) and hdu1541(Stars)树状数组
- 【树状数组--单点更新区间求和】 hdu1541 Stars
- PsoProcess-PSO-matlab
- JS检测APP是否安装的情况
- linux平台下C语言实现一个简单的httpsever
- 用Qt自动绘制路口
- 数据结构之关于树的操作(树的递归和非递归遍历)-(四补)
- HDU1541 Stars【树状数组】
- 设计模式(十六)中介者模式(Mediator)-行为型
- 做ajax搜索框自动提示功能的体会
- HDU 4570 - Multi-bit Trie(区间DP)
- 《剑指Offer》学习笔记--面试题35:第一个只出现一次的字符
- Tsinsen_A1021. 集合运算
- 你的孤独,虽败犹荣
- 编程命名中的7+1个提示
- Android屏幕大小适配问题解决