HOJ 1640 Mobile Phone

题意:有一个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

时间: 2024-08-03 17:10:55

HOJ 1640 Mobile Phone的相关文章

HOJ 题目分类

转自:http://blog.sina.com.cn/s/blog_65f3869301011a1o.html ******************************************************************************* 简单题(包括枚举,二分查找,(复杂)模拟,基础数据结构(栈.队列),杂题等 ****************************************************************************

jQuery Mobile中表单的使用体会

jQuery Mobile是手机端(移动端)页面制作用的框架,包括CSS和JavaScript,此处简单总结一下表单的书写,主要涉及CSS部分.框架提供了表单的一些样式,但在实际使用的时候,我们可能会用自己的自定义样式,这种情况下,框架提供的样式可能就不能满足我们的要求.今天项目中写登录页面的静态网页,碰到了几个问题,在这里和大家交流一下. 1 利用data-role="none" 在使用表单的时候,如果想使用自定义样式,就可以表单元素上给data-role属性赋值none,意思就是不

jQuery Mobile

1. pageinit & pageshow JQM的官方手册重点提醒了使用$(document).bind(‘pageinit’)代替$(document).ready(). 但当你需要对某一个页面(page)编写其独享的Javascript脚本时, 选择器应该选择的是该page层, 而不是document, 并使用live()添加事件处理器.这在ajaxEnable=true的情况下尤为重要. View Demo JS : $(document).bind('pageinit', funct

Mobile Push Notification

In one embodiment, a method includes sending to a mobile client computing device a first notification through a real-time push service, the first notification including content and being associated with a stateful object; the method also includes, in

史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发

书是人类进步的阶梯. ——高尔基 习大大要求新新人类要有中国梦,鼓励大学生们一毕业就创业.那最好的创业途径是什么呢?就是APP.<构建跨平台APP-jQuery Mobile移动应用实战>就是一本写给没钱没身份没资历的创业小白看的APP书,看完这本书你可以拥有自己的一个APP,不用花钱就能移植到其他移动平台,支持iOS,Android,Windows Phone!!!!!!!!找个最便宜的来练手吧!  小白APP交流Q群:  348632872 清华大学出版社推出的<构建跨平台APP:j

【数据结构】Not so Mobile (6-9)

[UVA839]Not so Mobile 算法入门经典第6章6-9(P157) 题目大意:输入一个树状天平,根据力矩相等原则判断是否平衡. 试题分析:貌似没有什么难点…… #include<iostream> #include<cstring> #include<cstdio> #include<vector> #include<queue> #include<stack> #include<algorithm> usi

Dji Mobile SDK 基础实现(一)

Dji Mobile SDK 基础实现(一) 本文简要介绍如何通过调用DJI Mobile SDK,实现获取和释放无人机的控制权限.模拟遥控器按钮控制无人机的飞行.获取无人机的回传视频.获取无人机参数.实现和onboard SDK的数据透传. 下面逐个介绍以上内容,余下内容将在以后的文章介绍(文章末尾附上GitHub链接): 获取和释放权限 模拟遥控器按钮控制无人机的飞行 获取和释放权限 1.获取flightController 对象: 1 DJIFlightController flightC

jquery mobile常用的data-role类型介绍

转自原文 jquery mobile常用的data-role类型介绍 data-role参数表: page        页面容器,其内部的mobile元素将会继承这个容器上所设置的属性 header     页面标题容器,这个容器内部可以包含文字.返回按钮.功能按钮等元素 footer       页面页脚容器,这个容器内部也可以包含文字.返回按钮.功能按钮等元素 content     页面内容容器,这是一个很宽容的容器,内部可以包含标准的html元素和jQueryMobile元素 cont

如何使用chrome devtool调试Mobile网页?

凡是做过mobile网页web app开发的朋友一定对开发效率的底下会有吐槽.现在chrome dev tool改变了程序员们的苦比. 1. chrome://inspect/#devices 2. android手机中打开chrome android 3. usb连机 4. 在pc的chrome devtool中inspect即可! https://www.html5rocks.com/en/tutorials/developertools/mobile/