zoukankan      html  css  js  c++  java
  • poj 1195 Mobile phones (二维 树状数组)

     1 /*
     2 题意 :
     3   改变矩阵中元素值 ,求子矩阵的和
     4   二维树状数组,
     5 */
     6 
     7 #include<stdio.h>
     8 #define N 1050
     9 int s;
    10 int map[N][N];
    11 int lowbit(int x)
    12 {
    13     return x&(-x);
    14 }
    15 void add(int x,int y,int d)
    16 {
    17     int i=x;
    18     int j=y;
    19     while(i<=s)
    20     {
    21         j=y;
    22         while(j<=s)
    23         {
    24             map[i][j]+=d;
    25             j=j+lowbit(j);
    26         }
    27         i=i+lowbit(i);
    28     }
    29 }
    30 int sum(int l,int b)
    31 {
    32     int i=l;
    33     int j=b;
    34     int ans=0;
    35     while(i>0)
    36     {
    37         j=b;
    38         while(j>0)
    39         {
    40             ans+=map[i][j];
    41             j-=lowbit(j);
    42         }
    43         i-=lowbit(i);
    44     }
    45     return ans;
    46 }
    47 int main()
    48 {
    49     int l,i,j,x,y,d,L,b,r,t;
    50     while(scanf("%d",&l)!=EOF)
    51     {
    52         if(l==3)break;
    53         if(l==0)
    54         {
    55             scanf("%d",&s);
    56             for(i=0;i<=s;i++)
    57               for(j=0;j<=s;j++)
    58                 map[i][j]=0;
    59 
    60         }
    61         if(l==1)
    62         {
    63             scanf("%d%d%d",&x,&y,&d);
    64             if(map[x+1][y+1]+d<0)continue;
    65             add(x+1,y+1,d);
    66         }
    67         if(l==2)
    68         {
    69             scanf("%d%d%d%d",&L,&b,&r,&t);
    70            int ans;
    71              
    72 
    73            ans=sum(r+1,t+1)-sum(L,t+1)-sum(r+1,b)+sum(L,b);
    74 
    75             printf("%d\n",ans);
    76         }
    77     }
    78 }
  • 相关阅读:
    JDK源码阅读--AbstractStringBuilder
    JDK源码阅读--String
    JDK源码阅读--Object
    linux查看日志
    velocity 相关
    oracle Trigger
    ssm调用后台oracle存储过程统计分析数据
    oracle 优化相关
    synchronized 控制并发(活动秒杀)
    SpringBoot自动装配的原理
  • 原文地址:https://www.cnblogs.com/acSzz/p/2459751.html
Copyright © 2011-2022 走看看