[IOI 2001] 移动电话 - 二维树状数组


题目描述

   假设第四代移动电话的收发站是这样运行。整个区域被分割成很小的方格。所有的方格组成了一个S*S的矩阵,行和列从0~S-1编号。每个小方格都包含一个收发站。每个方格内的开机的移动电话数量可以不断改变,因为手机用户在各个方格之间移动,也有用户开机或者关机。一旦某个方格里面开机的移动电话数量发生了变化,该方格里的收发站就会向总部发送一条信息说明这个改变量。
   总部要你写一个程序,用来管理从各个收发站收到的信息。老板可能随时会问:某一个给定矩形区域内有多少部开机的移动电话啊?你的程序必须要能随时回答老板的问题。
输入输出数据要求
   从标准输入读入整数,向标准输出写入你对老板问题的回答。
   输入数据的格式如下:每个输入独立成一行。一个输入包括一个指示数和一些参数,见下表:
  这里写图片描述
  所有的数据总是在给定的范围内,你不需要查错。特别的,如果A是负数,你可以认为该操作不会让该格子的开机移动电话数变成负数。格子是从0开始编号的,比如一个4*4的区域,所有的格子(X,Y)应该表示为0<=X<=3,0<=Y<=3。

  

样例数据

样例输入

0 4 //初始化44的区域.
1 1 2 3 //格子(1,2)加3。
2 0 0 2 2 //询问矩形0<=X<=2,0<=Y<=2里面的开机移动电话总量
1 1 2 -1 //格子(1,2)减1。
2 1 1 2 3 //询问矩形1<=X<=2,1<=Y<=3里面的开机移动电话总量。
3

样例输出

3 //回答询问
2 //回答询问


数据范围

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值