您的位置:首页 > 其它

【树状数组】POJ 2352 Stars

2017-06-17 13:15 435 查看
/***  @author           johnsondu*  @time             2015-8-22*  @type             Binary Index Tree*                      ignore the coordinate of y and*                      process as 1D conditions.*  @url              http://poj.org/problem?id=2352 */#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <string>#include <stack>#include <queue>#include <map>#include <vector>using namespace std;const int N = 15005;const int M = 32010;int level, c[M];int lowbit(int x) {return (x & (-x)) ;}// 向上更新void update(int x, int v) {while(x < M) {c[x] += v;x += lowbit(x);}}// 获取当前节点及下面的值的个数int getSum(int x) {int sum = 0;while(x > 0) {sum += c[x];x -= lowbit(x);}return sum;}int main(){int n, x, y;scanf ("%d", &n);memset(level, 0, sizeof(level));memset(c, 0, sizeof(c));for(int i = 1; i <= n; i ++) {scanf("%d%d", &x, &y);++ level[getSum(x + 1)];update(x+1, 1);}for(int i = 0; i < n; i ++) {cout << level[i] << endl;}return 0;}
附一篇经典翻译,学习 树状数组 http://www.hawstein.com/posts/binary-indexed-trees.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: