zoukankan      html  css  js  c++  java
  • hdoj1541

    Problem : 1541 ( Stars )     Judge Status : Accepted
    RunId : 2816947    Language : C++    Author : huwenbiao
    Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta
    /***************************************************************\
    *Author:Hu Wenbiao
    *Created Time: Sat 14 Aug 2010 10:01:51 AM CST
    *File Name: main.cpp
    *Description:树状数组。因为y是升序的,从前往后一个一个地计算各
    *星星,只用x座标即可。
    \***************************************************************/

    //*========================*Head File*========================*\\

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    /*----------------------*Global Variable*----------------------*/
    //#define lowbit(i) i&(-i);
    int C[32100],level[15100],N,x,_max;
    //*=======================*Main Program*=======================*//
    using namespace std;

    int
    lowbit(int i){
    return
    i&(-i);
    }

    int
    sum(int i){
    int
    sum=
    0;
    while
    (i>
    0){
    sum+=C[i];
    i-=lowbit(i);
    }

    return
    sum;
    }

    void
    add(int i,int diff){
    while
    (i<=_max){
    C[i]+=diff;
    i+=lowbit(i);
    }
    }

    int
    main(){

    //freopen("input","r",stdin);
    _max=32001;
    while
    (scanf(
    "%d",&N)!=EOF){
    memset(C,
    0,sizeof(C));
    memset(level,
    0,sizeof(level));
    for
    (int i=
    0;i<N;i++){
    scanf(
    "%d%*d",&x);
    x++;
    //座标要加1,因为座标为0时add(int i,int diff)会出问题
    level[sum(x)]++;
    add(x,
    1);
    }

    for
    (int i=
    0;i<N;i++)
    printf(
    "%d\n",level[i]);
    }
    }
  • 相关阅读:
    [置顶] 寻找数组中的值
    详解 Java 的八大基本类型,写得非常好!
    从入门到放弃的 Java 架构师面试题!
    通往大牛之路,百度Java面试题前200页!
    HTML与CSS简单页面效果实例
    JS面向对象
    JS瀑布流效果
    CSS常用操作-图片
    CSS常用操作-导航栏
    CSS常用操作-对齐
  • 原文地址:https://www.cnblogs.com/Open_Source/p/1904895.html
Copyright © 2011-2022 走看看