poj 2352 Stars (树状数组)

原创 2015年07月08日 14:14:36

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

题意:给定n个点的坐标(x,y),n个点按y坐标从小到大输入,如果y坐标相等的按x坐标从小到大输入。统计每个点的左下方有多少个点(包括左边和下边),输出统计数为0的个数、统计数为1的个数...统计数为n-1的有多少个。

分析:对于任意一个点p(x,y),在p的左下方的点t(x',y')的纵坐标y'肯定≤y,那么问题就转化为,对于所有的点,在之前输入的点里面统计横坐标小于x的点的个数(由于输入有序,纵坐标其实没用)。那么用树状数组就很容易解决了,不过注意x可能等于0,0+lowbit(0)==0,会导致死循环,将所有的点向由平移1个点位就行了。

代码:

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

const int INF = 32005;

int tree[INF],ans[INF];

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

void update(int x,int v)
{
	for(int i=x;i<INF;i+=lowbit(i))
		tree[i]+=v;
}

int query(int x)
{
	int ret(0);
	for(int i=x;i>0;i-=lowbit(i))
		ret+=tree[i];
	return ret;
}

int main()
{
	int n,i,j,x,y;
	while(scanf("%d",&n)!=EOF)
	{
		memset(tree,0,sizeof(tree));
		memset(ans,0,sizeof(ans));
		for(i=0;i<n;i++)
		{
			scanf("%d%d",&x,&y);
			++ans[query(x+1)];
			update(x+1,1);
		}
		for(i=0;i<n;i++)
			printf("%d\n",ans[i]);
	}
	return 0;
}


版权声明:转吧。

Poj(2352)——Stars(树状数组)

Description Astronomers often examine star maps where stars are represented by points on a plane ...
  • ACMer_hades
  • ACMer_hades
  • 2015年05月30日 15:31
  • 802

POJ 2352 Stars 【树状数组】

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 38952   Accepte...
  • wyjwyl
  • wyjwyl
  • 2015年11月24日 17:11
  • 192

POJ 2352——Stars(树状数组)

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32738   Accepte...
  • u014141559
  • u014141559
  • 2014年08月25日 20:47
  • 325

POJ 2352 Stars (树状数组)

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32431   Accepte...
  • steveyg
  • steveyg
  • 2014年08月13日 10:00
  • 276

POJ 2352 Stars (树状数组)

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 46492   Accepte...
  • ldw201510803006
  • ldw201510803006
  • 2017年04月23日 10:42
  • 71

poj 2352 Stars(树状数组)

StarsDescriptionAstronomers often examine star maps where stars are represented by points on a plane...
  • blessLZH0108
  • blessLZH0108
  • 2017年04月14日 14:44
  • 177

POJ 2352 Stars(树状数组)

F - Stars Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Statu...
  • s1124yy
  • s1124yy
  • 2016年05月13日 15:49
  • 210

POJ 2352 Stars(树状数组)

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 35467   Accepte...
  • yeguxin
  • yeguxin
  • 2015年04月22日 19:20
  • 330

poj 2352 Stars(树状数组)

题目链接:http://poj.org/problem?id=2352 思路:树状数组 分析: 1 题目是要求出每一个点的左下(正左+正下)有几个星星,那个这个点就是第几层,最后输出0~n-...
  • qq_36782366
  • qq_36782366
  • 2017年07月18日 22:02
  • 46

POJ 2352 Stars(线段树)

题目地址:POJ 2352 今天的周赛被虐了。。TAT..线段树太渣了。。得好好补补了(虽然是从昨天才开始学的。。不能算补。。。) 这题还是很简单的。。维护信息是每一个横坐标的出现的次数。 代码...
  • u013013910
  • u013013910
  • 2014年08月09日 17:55
  • 862
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 2352 Stars (树状数组)
举报原因:
原因补充:

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