题意:有一个n*n的矩阵,op==1时,在(x,y)增加值z,op==2时,求以(x1,y1)和(x2,y2)构成的矩阵的和。

思路:二维线段树。

代码:

 1 #include<stdio.h>
 2 #include<string.h>
 3 const int N=1111;
 4 int c[N][N],n;
 5 int lowbit(int x)
 6 {
 7     return x&-x;
 8 }
 9 void add(int x,int y,int z)
10 {
11     for(int i=x;i<=n;i=(i|(i-1))+1)
12         for(int j=y;j<=n;j=(j|(j-1))+1)
13             c[i][j]+=z;
14 }
15 int q(int x,int y)
16 {
17     int sum=0;
18     for(int i=x;i;i=i&(i-1))
19         for(int j=y;j;j=j&(j-1))
20             sum+=c[i][j];
21     return sum;
22 }
23 int main()
24 {
25     int op,x,y,z,x1,x2,y1,y2;
26     while(scanf("%d%d",&op,&n)!=EOF)
27     {
28         memset(c,0,sizeof(c));
29         while(scanf("%d",&op)&&op!=3)
30         {
31             if(op==1)
32             {
33                 scanf("%d%d%d",&x,&y,&z);
34                 add(x+1,y+1,z);
35             }
36             else
37             {
38                 scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
39                 x1++,x2++,y1++,y2++;
40                 printf("%d\n",q(x2,y2)+q(x1-1,y1-1)-q(x2,y1-1)-q(x1-1,y2));
41             }
42         }
43     }
44     return 0;
45 }
46 /*
47 i -= lowbit(i)   ==      i = i&(i-1)
48 i += lowbit(i)   ==      i = (i|(i-1))+1
49 */

参考文章:http://blog.csdn.net/hit_lingo/article/details/50845718

       http://www.cnblogs.com/yejinru/archive/2012/03/22/2412359.html

转载于:https://www.cnblogs.com/L-King/p/5445612.html

HOJ 1640 Mobile Phone相关推荐

  1. hoj 1640 Mobile phones //poj 1195 Mobile phones 二维树状数组

    /* (x1,y2)   ____________    (x2,y2) |                      | |                      | |             ...

  2. 面向Mobile device的CNN模型手工设计与NAS分析总结,MobileNet V1,V2,V3,Efficient,MNasNet以及Efficient network design

    手工方法和NAS的高效网络模型设计总结与分析 这篇文章主要关注对于移动端,资源受限平台的高效神经网络设计(Manually)和搜索(NAS). ​​​​​​高效的CNN设计不只是用在服务器,云端,资源 ...

  3. Paper4:Voxel-Based Extraction and Classification of 3-D Pole-Like Object From Mobile LIDAR Point Clo

    Voxel-Based Extraction and Classification of 3-D Pole-Like Object From Mobile LIDAR Point Cloud Data ...

  4. 微信同步通讯录服务器繁忙,企业微信同步通讯录时提示 mobile existed

    本帖最后由 dr琅琊人 于 2020-3-26 10:47 编辑 http://XXXX.com"},"process":"/SA/weixin/process ...

  5. Windows Mobile 6.0 SDK和中文模拟器下载

    [转] Windows Mobile 6.0 SDK和中文模拟器下载 Windows Mobile 6.5 模拟器 2010年12月06日 星期一 07:48 转载自 zhangyanle86 终于编 ...

  6. Ring Tone Manager on Windows Mobile

    2019独角兽企业重金招聘Python工程师标准>>> 手机铃声经常能够体现一个人的个性,有些哥们儿在自习室不把手机设置成震动,一来电就@#$^%^@&^%#$&$* ...

  7. windows mobile做一个摄象头预览程序

    zdirectshow的原理大概大家都知道,基本就是用微软封装的接口来实现硬件无关性,但是最终调用的接口都要在驱动层有对应的实现: 为了更清楚地演示directshow的数据传输过程,我必须说明的这个 ...

  8. jQuery Mobile的学习时间bottonbutton的事件学习

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xmt1139057136/article/details/27700521 程序猿都非常懒,你懂的! ...

  9. jQuery UI vs Kendo UI jQuery Mobile vs Kendo UI Mobile

    jQuery UI vs Kendo UI http://jqueryuivskendoui.com/#introduction jQuery Mobile vs Kendo UI Mobile ht ...

最新文章

  1. 查询出每个部门比本部门平均工资高的职工人数
  2. Cassandra与RDBMS的设计差别
  3. springboot 插入返回id_实战SpringBoot缓存开发
  4. 探秘AI开发「神器」ModelArts,解读IoT 智能设备,华为云教你玩转 AI开发!
  5. leetcode 775. Global and Local Inversions | 775. 全局倒置与局部倒置(Java)
  6. 全栈Python 必备库
  7. CSS串联和后代选择器
  8. 用c语言编译二叉树,C语言 数据结构平衡二叉树实例详解
  9. eclipse常见小问题
  10. Python+OpenGL切分图形窗口在多视区中显示不同动画
  11. Hibernate映射组件属性为集合(二)
  12. 【优化预测】基于matlab蝙蝠算法优化LSSVM预测【含Matlab源码 109期】
  13. 小米盒子显示未连接电脑连接服务器,小米盒子不能连接电脑的原因与解决办法...
  14. Vmware安装深度Deepin图文
  15. 6、Latex学习笔记之参考文献篇
  16. Aspose WorkbookDesigner打开文件异常Error xml namespace
  17. 前后端不分离,分页器组件(python-dango)
  18. 看完微信公众号最新的广告分成方案,只想给32个赞
  19. Java如何进行文件上传与下载
  20. 【leetcode】644 最大子段和 II(二分查找,数组)

热门文章

  1. 线程的run()方法带参情况
  2. c++ 线程什么时候run_阿里后端Java面试题:启动线程是start()还是run()?为什么?...
  3. python linux编程与window编程_Python3如何在Windows和Linux上打包
  4. php kafka storm,php的kafka踩坑(二)
  5. linux ping库函数,Linux 常用基本命令 ping ifconfig
  6. 数学--数论--HDU 2197 本原串 (推规律)
  7. 网络流--最大流--HDU 3549 Flow Problem
  8. MySQL 中 AUTO_INCREMENT 的“坑” --重复值问题
  9. 【Transformer】Do Vision Transformers See Like Convolutional Neural Networks?
  10. 乐器演奏_深度强化学习代理演奏的蛇