POJ-2352 Stars【树状数组】

原创 2012年03月24日 07:54:38

题目链接:http://poj.org/problem?id=2352

题目大意:

给你星星的坐标(y递增,若y相等,x递增),每个星星都有一个等级,规定它的等级就是在它左下方的星星的个数。输入所有星星后,依次输出等级为0到n-1的星星的个数。

解题思路:

就是统计x前面比它小的星星的个数,符合树状数组最基本的应用。

注意的是:树状数组下标为0的位置不可用,所以我们需要在输入x坐标时+1.


代码如下:

#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

#define CLR(arr, val) memset(arr, val, sizeof(arr))
#define N 32010

int n;
int lev[N], c[N];

int lowbit(int x)
{
	return x & (-x);
}

void add(int i, int data)
{
	while(i < N)
	{
		c[i] += data;
		i += lowbit(i);
	}
}

int getsum(int x)
{
	int res = 0;
	while(x > 0)
	{
		res += c[x];
		x -= lowbit(x);
	}
	return res;
}

int main()
{
	int x, y;
	while(~scanf("%d", &n))
	{
		CLR(lev, 0); CLR(c, 0);
		for(int i = 0; i < n; ++i)
		{
			scanf("%d%d", &x, &y);
			x++; //有0出现,树状数组无法处理。故+1
			lev[getsum(x)]++; //先统计,不包括本身
			add(x, 1); //加入
		}
		for(int i = 0; i < n; ++i)
			printf("%d\n", lev[i]);
	}
	return 0;
}


相关文章推荐

POJ-2352-Stars

POJ-2352-Stars http://poj.org/problem?id=2352 给出n个星星的坐标,如果一个星星的左下方(包含正左和正下)有k颗星星,就说这颗星星是k级的,统计每个等级...

POJ-2352-Stars

这个题要求统计星星的个数,按x的输入进行树状数组更新即可,注意x坐标可能为0的情况,所以对所有x坐标执行加1操作 代码: #include #include #include using name...

poj 2352 Stars(树状数组 or 线段树)

链接: http://poj.org/problem?id=2352 题目大意: 在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0 按照y...

POJ2352 Stars 【树状数组】or【线段树】

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31172   Accepte...

POJ2352:Stars(树状数组)

Description Astronomers often examine star maps where stars are represented by points on a plane ...

[解题报告]POJ2352 Stars 树状数组

刚学完树状数组,趁热打铁,AC了一道树状数组的基本题 因为x,y已经排序好,所以后输入的星星的不可能在先输入的星星左下,可以一边输入一边更新树状数组,c[i]表示的是树状元素中的值,sum(i)即可...
  • swm8023
  • swm8023
  • 2011年06月13日 00:41
  • 3426

POJ2352_Stars(线段树/单点更新)

解题报告 题意: 求在坐标系中

poj2352stars【treap树水题】

又是审题!虽说好多网友都被坑在这里了== 说题意:给出的这些坐标只考虑小于等于自身横坐标的个数(不包括自己)分别有多少点的这种个数是在0~n-1范围内的 裸的treap不解释 /***********...

【树状数组】数星星(POJ2352&nbsp;star…

【树状数组】数星星(POJ2352 star) Time Limit:1000MS  Memory Limit:65536K Total Submit:14 Accepted:9 Descriptio...
  • m42ping
  • m42ping
  • 2015年02月02日 19:24
  • 398

poj 2352 Stars(树状数组)

StarsDescriptionAstronomers often examine star maps where stars are represented by points on a plane...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ-2352 Stars【树状数组】
举报原因:
原因补充:

(最多只允许输入30个字)