您的位置:首页 > 其它

hdu 1541 Stars ( 树状数组 )

2013-03-05 19:20 483 查看
经典的树状数组。

// File Name: hdu1541.cpp
// Author: Toy
// Created Time: 2013年03月05日 星期二 18时41分34秒

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <cctype>
#include <cmath>
#include <string>
#include <algorithm>
#include <cstdlib>

using namespace std;

int ar[32011], n, x, y, level[15010];

int Lowbit ( int t ) {
return t & ( -t );
}

void add ( int i, int v ) {
while ( i <= 32001 ) {
ar[i] += v, i += Lowbit ( i );
}
}

int sum ( int i ) {
int s = 0;
while ( i > 0 ) {
s += ar[i], i -= Lowbit ( i );
}
return s;
}

int main ( ) {
while ( scanf ( "%d", &n ) != EOF ) {
memset ( level, 0, sizeof ( level ) );
memset ( ar, 0, sizeof ( ar ) );
for ( int i = 1; i <= n; ++i ) {
scanf ( "%d%d", &x, &y );
++x;
add ( x, 1 );
level[ sum ( x ) - 1 ]++;
}
for ( int i = 0; i < n; ++i )
printf ( "%d\n", level[i] );
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: