HDU 1541 Stars 树状数组
2016-02-05 11:05
711 查看
[align=left]Problem Description[/align]
Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that are not higher and not to the right of the given star. Astronomers want to know the distribution of the levels of the stars.
For example, look at the map shown on the
figure above. Level of the star number 5 is equal to 3 (it's formed by three
stars with a numbers 1, 2 and 4). And the levels of the stars numbered by 2 and
4 are 1. At this map there are only one star of the level 0, two stars of the
level 1, one star of the level 2, and one star of the level 3.
You are
to write a program that will count the amounts of the stars of each level on a
given map.
[align=left]Input[/align]
The first line of the input file contains a number of
stars N (1<=N<=15000). The following N lines describe coordinates of stars
(two integers X and Y per line separated by a space, 0<=X,Y<=32000). There
can be only one star at one point of the plane. Stars are listed in ascending
order of Y coordinate. Stars with equal Y coordinates are listed in ascending
order of X coordinate.
[align=left]Output[/align]
The output should contain N lines, one number per line.
The first line contains amount of stars of the level 0, the second does amount
of stars of the level 1 and so on, the last line contains amount of stars of the
level N-1.
[align=left]Sample Input[/align]
5
1 1
5 1
7 1
3 3
5 5
[align=left]Sample Output[/align]
1
2
1
1
0
一道简单的树状数组,题目就是定义了一个等级制度,一个星星的等级等于在他左边或下面的星星数,然后按等级输出星星个数。
题目已经排好序,不然加个快排也是很快的。
既然已经有序,那么后面相同X的星星一定比前面的星星高,添加的时候等级就是1~x的星星总数了。
有多组数据!!!!!
为此我WA了3次。。。。
代码如下:
Astronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that are not higher and not to the right of the given star. Astronomers want to know the distribution of the levels of the stars.
For example, look at the map shown on the
figure above. Level of the star number 5 is equal to 3 (it's formed by three
stars with a numbers 1, 2 and 4). And the levels of the stars numbered by 2 and
4 are 1. At this map there are only one star of the level 0, two stars of the
level 1, one star of the level 2, and one star of the level 3.
You are
to write a program that will count the amounts of the stars of each level on a
given map.
[align=left]Input[/align]
The first line of the input file contains a number of
stars N (1<=N<=15000). The following N lines describe coordinates of stars
(two integers X and Y per line separated by a space, 0<=X,Y<=32000). There
can be only one star at one point of the plane. Stars are listed in ascending
order of Y coordinate. Stars with equal Y coordinates are listed in ascending
order of X coordinate.
[align=left]Output[/align]
The output should contain N lines, one number per line.
The first line contains amount of stars of the level 0, the second does amount
of stars of the level 1 and so on, the last line contains amount of stars of the
level N-1.
[align=left]Sample Input[/align]
5
1 1
5 1
7 1
3 3
5 5
[align=left]Sample Output[/align]
1
2
1
1
0
一道简单的树状数组,题目就是定义了一个等级制度,一个星星的等级等于在他左边或下面的星星数,然后按等级输出星星个数。
题目已经排好序,不然加个快排也是很快的。
既然已经有序,那么后面相同X的星星一定比前面的星星高,添加的时候等级就是1~x的星星总数了。
有多组数据!!!!!
为此我WA了3次。。。。
代码如下:
#include<iostream> using namespace std; int a[32005],c[32005],n=32005; int lowbit(int x) { return x&(-x); } int sum(int i) { int sum=0; while(i>0) { sum+=c[i]; i-=lowbit(i); } return sum; } void inster(int y,int x) { while(y<=n) { c[y]+=x; y+=lowbit(y); } } int main() { int x,y,i,j,n; while(scanf("%d",&n)>0) { memset(a,0,sizeof(a)); memset(c,0,sizeof(c)); for(i=0;i<p;i++) { scanf("%d%d",&x,&y); x++; a[sum(x)]++; inster(x,1); } for(i=0;i<p;i++) printf("%d\n",a[i]); } return 0; }
相关文章推荐
- Myeclipse中误报错误解决办法
- 在你步入职业软件开发生涯那天起就该知道的五件事
- 迷宫问题c程序
- Android CTS(兼容性测试)整个流程
- usaco 1.4 packrec 2008.5.6
- Tomcat启动时报 java.lang.OutOfMemoryError: Java heap space
- 计算两组标签/关键词 相似度算法
- String 基本使用方法, 以及要注意的事项
- Myeclipse中 Exploded location overlaps an existing deployment解决办法
- SVN提交项目时版本冲突解决方案
- 跨域调用WebApi
- 新浪微博分享
- Jsp过滤器Filter配置过滤类型汇总
- 如何使用doppia进行人脸检测
- iOS开发技巧之扩展UIColor,支持十六进制颜色设置
- myeclipse修改jsp文件的名称之后,再也打不开的解决方案
- seesaw v2简单部署
- Android SDK 百度地图通过poi城市内检索简介接口的使用
- read Linux
- spring MVC第一阶段总结