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