HDU 1541 Stars (树状数组)
2014-09-18 21:07
357 查看
题意:直角坐标系上有n个点 每个点的值为它左下的点的数量
求0。。。n-1每个数值出现的次数
思路:题目中已经给出y递增 x在y相同时递增
从而可以一边输入一边利用树状数组将结果求出
每次输入时 先计算出 sum(x+1) (由于树状数组下标从1 开始 ,所以每个值都加1,否则会超时)
再 add(x)
最后统计结果
求0。。。n-1每个数值出现的次数
思路:题目中已经给出y递增 x在y相同时递增
从而可以一边输入一边利用树状数组将结果求出
每次输入时 先计算出 sum(x+1) (由于树状数组下标从1 开始 ,所以每个值都加1,否则会超时)
再 add(x)
最后统计结果
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int c[50000],num[50000]; int N=32100; int lowbit(int x) { return x&(-x); } int sum(int x) { int ret=0; while(x>0) { ret+=c[x]; x-=lowbit(x); } return ret; } void add(int x,int d) { while(x<=N) { c[x]+=d; x+=lowbit(x); } } int main() { int t; int i,j; while(cin>>t) { memset(c,0,sizeof(c)); memset(num,0,sizeof(num)); for(i=0;i<t;i++) { int x,y; scanf("%d%d",&x,&y); num[sum(x+1)]++; add(x+1,1); } for(i=0;i<t;i++) { printf("%d\n",num[i]); } } return 0; }
相关文章推荐
- HDU 1541 Stars (树状数组)
- hdu_1541 Stars (树状数组)
- hdu 1541 树状数组 Stars
- POJ 2352 && HDU 1541 Stars (树状数组)
- hdu 1541 Stars(树状数组)
- hdu 1541 Stars(树状数组)
- POJ 2352 && HDU 1541 Stars (树状数组)
- hdu 1541 stars(树状数组)
- hdu 1541 Stars(树状数组)
- HDU 1541 Stars (树状数组)
- hdu 1541 Stars ( 树状数组 )
- hdu-1541-Stars (树状数组)
- HDU 1541 Stars (树状数组)
- poj 2352 && hdu 1541 Stars (树状数组水题)
- hdu1541 Stars(树状数组+解释)
- hdu 1541 Stars(树状数组)
- 【树状数组】hdu 1541 Stars
- hdu 1541 Stars (树状数组)
- hdu 1541(树状数组入门题 Stars)
- poj-2352 && HDU-1541 --Stars(树状数组)