/**
* @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[N], 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

最新文章

  1. css的书写规范+常用
  2. EnjoyCSS – 在线的,先进的 CSS3 代码生成器
  3. 在Entity Framework 4.0中使用 Repository 和 Unit of Work 模式
  4. 浅析String、StringBuffer、StringBuilder的区别以及性能区别
  5. linux下搭建mysql主从
  6. C# Socket 入门1(转)
  7. MyBatis的动态SQL操作--删除
  8. Oracle SQL ANY和ALL语句
  9. Android的OkHttp开源框架的使用方法
  10. 使用 LINQPad 助力 LINQ 学习
  11. Gson解析json字符串、json数组转换成对象
  12. webpack无法热加载(__webpack_hmr 502)
  13. git 原理
  14. Dapper.NET
  15. 百度AI搜索引擎
  16. bzoj5019: [Snoi2017]遗失的答案
  17. linux下如何查看当前机器提供了哪些服务
  18. [转]wx.getUserInfo(OBJECT) 微信小程序 获取用户信息
  19. ASP.NET中常用输出JS脚本的类(来自于周公博客)
  20. 试用Redis

热门文章

  1. Oracle - java创建Oracle 的触发器
  2. VS2013创建Windows服务
  3. Scrum Meeting Alpha - 7
  4. Python 解LeetCode:367. Valid Perfect Square
  5. 在LINQ查询中LINQ之Group By的用法
  6. c# asp.net 多数组索引的解决方法
  7. PEP8
  8. linux基础命令整理(一)
  9. 基于HTML5 Canvas 点击添加 2D 3D 机柜模型
  10. 享元模式(Flyweight)