Stars

原创 2016年08月30日 13:43:26
链接:http://poj.org/problem?id=2352

题目: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.

题意:在坐标系的第一象限有几颗星星,每颗星星(m,n)的等级定义为满足(x<=m,y<=n)的星星的个数。

分析:所给的数据是按照y坐标升序的,其实是个提示,主要的思想就是要一层一层按照y轴去数。数据量中等,用暴力做的话,需要维护一个前缀和,我没试过,不过应该是可以做的,当时做的时候刚好学了树状数组,所以就用树状数组来做了。

题解:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <string>
#include <cstring>
#include <functional>
#include <cmath>
#include <cctype>
#include <cfloat>
#include <climits>
#include <complex>
#include <deque>
#include <list>
#include <set>
#include <utility>
using namespace std;

int cla[32010];
int bit[32010];
pair<int,int> ps[32010];
int n;

void add(int x)
{
	while(x<=32005){
		bit[x]+=1;
		x+=x&-x;
	}
}

int countn(int x)
{
	int an=0;
	while(x){
		an+=bit[x];
		x-=x&-x;
	}
	return an;
}

int main()
{
	//freopen("in.txt","r",stdin);
	scanf("%d",&n);
	memset(bit,0,sizeof bit);
	memset(cla,0,sizeof cla);
	int x,y;
	for(int i=1;i<=n;i++){
		scanf("%d %d",&x,&y);
		add(x+1);
		cla[countn(x+1)-1]++;
	}
	for(int i=0;i<n;i++){
		printf("%d\n",cla[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
  • 838

POJ2352:Stars(树状数组)

Description Astronomers often examine star maps where stars are represented by points on a plane ...
  • libin56842
  • libin56842
  • 2015年06月21日 16:44
  • 1534

POJ 2482 Stars in Your Window(线段树扫描线)

题意: 背景真是令人感动,我都看得哭了...... 前面的自己看吧。 给出星星的坐标和亮度,给定一个矩形(长/宽),求框住的星星亮度和的最大值,恰好在边上的不算。 分析: 一个月前在上海邀请赛就有这样...
  • u012965890
  • u012965890
  • 2014年08月22日 18:57
  • 1279

Counting Stars 全中国最准确的翻译!

最近听到Counting Stars这首歌,觉得歌词屌爆了。然后去网上找了找中文翻译,没想到所有我看到的版本都把这首歌翻成了情歌.......还有很多版本的英文歌词都是错的,反正我就没发现全对的。 ...
  • developer_biao
  • developer_biao
  • 2014年07月14日 00:29
  • 2480

Ural 1028. Stars(树状数组)

题目链接:点击打开链接 思路: 为了满足第一个条件, 我们可以先按照x坐标排序,  然后我们用树状数组来维护y坐标大小关系, 就可以在O(nlogn)的时间内求出答案了。 细节参见代码: #i...
  • weizhuwyzc000
  • weizhuwyzc000
  • 2016年08月10日 20:43
  • 529

POJ-2352-Stars

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

HDU 1541 star 树状数组

Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su...
  • sky_fighting
  • sky_fighting
  • 2012年08月04日 11:28
  • 1103

[ACM] hdu 2352 Stars (树状数组)

Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 30272   Accepte...
  • sr19930829
  • sr19930829
  • 2014年04月19日 20:53
  • 1424

Stars(树状数组或线段树)

Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37323 Accepted: 16278...
  • huayunhualuo
  • huayunhualuo
  • 2015年08月14日 16:15
  • 526

HDU Stars

It's a simple tree_array problem. The portal:http://acm.hdu.edu.cn/showproblem.php?pid=1541 #include...
  • NMfloat
  • NMfloat
  • 2015年07月10日 16:20
  • 281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Stars
举报原因:
原因补充:

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