【poj1195】Mobile phones(二维树状数组)

本文介绍了解决POJ1195 Mobilephones问题的方法,利用二维树状数组进行单点更新和区域查询。文章提供了完整的C++代码实现,并解释了如何处理不同类型的输入操作。

【poj1195】Mobile phones(二维树状数组)

题目链接:http://poj.org/problem?id=1195

【题意】

给出一个全0的矩阵,然后一些操作

0 S:初始化矩阵,维数是S*S,值全为0,这个操作只有最开始出现一次

1 X Y A:对于矩阵的X,Y坐标增加A

2 L B R T:询问(L,B)到(R,T)区间内值的总和

3:结束对这个矩阵的操作

 

【思路】

二维树状数组单点更新+区域查询,可作为模板题。

注意坐标是从0开始,所以要+1

 

【代码】

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #include<cmath>
 7 using namespace std;
 8 const int N = 1029;
 9 typedef long long LL;
10 int c[N][N], n;
11 int lowbit(int x)
12 {
13     return x & (-x);
14 }
15 void update(int x, int y, int num)
16 {
17     for(int i = x; i <= n; i += lowbit(i))
18         for(int j = y; j <= n; j += lowbit(j))
19             c[i][j] += num;
20 }
21 int query(int x, int y)
22 {
23     int sum = 0;
24     for(int i = x; i > 0; i -= lowbit(i))
25         for(int j = y; j > 0; j -= lowbit(j))
26             sum += c[i][j];
27     return sum;
28 }
29 int main()
30 {
31     int i, m;
32     scanf("%d%d", &i, &n);
33     while(scanf("%d", &m), m != 3)
34     {
35         int x1, x2, y1, y2, num;
36         if(m == 1)
37         {
38             scanf("%d%d%d", &x1, &y1, &num);
39             x1++, y1++;
40             update(x1, y1, num);
41         }
42         else
43         {
44             scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
45             x1++, y1++, x2++, y2++;
46             printf("%d\n", query(x2, y2) - query(x1 - 1, y2) - query(x2, y1 - 1) + query(x1 - 1, y1 - 1));
47         }
48     }
49     return 0;
50 }

 

posted @ 2018-02-26 23:26 LesRoad 阅读(...) 评论(...) 编辑 收藏

代码转载自:https://pan.quark.cn/s/7f503284aed9 Hibernate的核心组件总数达到五个,具体包括:Session、SessionFactory、Transaction、Query以及Configuration。 这五个核心组件在各类开发项目中都具有普遍的应用性。 借助这些组件,不仅可以高效地进行持久化对象的读取与存储,还能够实现事务管理功能。 接下来将通过图形化的方式,逐一阐述这五个核心组件的具体细节。 依据所提供的文件内容,可以总结出以下几个关键知识点:### 1. SSH框架详细架构图尽管标题提及“SSH框架详细架构图”,但在描述部分并未直接呈现关于SSH的详细内容,而是转向介绍了Hibernate的核心接口。 然而,在此我们可以简要概述SSH框架(涵盖Spring、Struts、Hibernate)的核心理念及其在Java开发中的具体作用。 #### Spring框架- **定义**:Spring框架是一个开源架构,其设计目标在于简化企业级应用的开发流程。 - **特点**: - **分层结构**:该框架允许开发者根据实际需求选择性地采纳部分组件,而非强制使用全部功能。 - **可复用性**:Spring框架支持创建可在不同开发环境中重复利用的业务逻辑和数据访问组件。 - **核心构成**: - **核心容器**:该部分包含了Spring框架的基础功能,其核心在于`BeanFactory`,该组件通过工厂模式运作,并借助控制反转(IoC)理念,将配置和依赖管理与具体的应用代码进行有效分离。 - **Spring上下文**:提供一个配置文件,其中整合了诸如JNDI、EJB、邮件服务、国际化支持等企业级服务。 - **Spring AO...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值