zoukankan      html  css  js  c++  java
  • hdu1556树状数组的区间更新单点查询

    Color the ball

    Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6084    Accepted Submission(s): 3227

    Problem Description
    N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一
    次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?
     
    Input
    每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N)。 当N = 0,输入结束。
     
    Output
    每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。
     
    Sample Input
    3
    1 1
    2 2
    3 3
    3
    1 1
    1 2
    1 3
    0
     
    Sample Output
    1 1 1
    3 2 1
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <stdio.h>
     4 #include <string.h>
     5 #include <math.h>
     6 using namespace std;
     7 int a[1000000];
     8 int n;
     9 int lowbit(int x)
    10 {
    11     return x&(-x);
    12 }
    13 void update(int x,int y)
    14 {
    15     x--;
    16     while(y>0)
    17     {
    18         a[y]++;
    19         y-=lowbit(y);
    20     }
    21     while(x>0)
    22     {
    23         a[x]--;
    24         x-=lowbit(x);
    25     }
    26 }
    27 int fun(int x)
    28 {
    29     int sum=0;
    30     while(x<=n)
    31     {
    32         sum+=a[x];
    33         x+=lowbit(x);
    34     }
    35     return sum;
    36 }
    37 int main()
    38 {
    39     while(cin>>n&&n){
    40     int i,j;
    41     memset(a,0,sizeof(a));
    42     for(i=0;i<n;i++)
    43     {
    44         int x,y;
    45         scanf("%d%d",&x,&y);
    46         update(x,y);
    47     }
    48     for(i=1;i<n;i++)
    49     {
    50         printf("%d ",fun(i));
    51     }
    52      printf("%d
    ",fun(i));
    53     }
    54 }
    View Code
  • 相关阅读:
    Android Studio使用百度地图(二)
    Android Studio使用百度地图(一)
    寒假每日日报30(体温登记app——进度3)
    EF CodeFirst数据注解特性详解
    EF CodeFirst配置领域类
    EF CodeFirst简介、默认约定、数据库初始化策略
    EF CodeFirst关于Mysql如何自动生成数据库表
    EF的预先加载--Eager Loading
    EF的延迟加载LazyLoad
    ADO.NET中sqlserver和mysql的变量名
  • 原文地址:https://www.cnblogs.com/ERKE/p/3256964.html
Copyright © 2011-2022 走看看