1470. UFOs(三维树状数组)
最简单的三维树状数组
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define lowbit(x) x&(-x)
int re[][][],n;
int getsum(int x,int y,int z)
{
int s = ,i,j,g;
for(i = x; i >= ; i -= lowbit(i))
for(j = y ; j>= ; j -= lowbit(j))
for(g = z ; g >= ; g-=lowbit(g))
s+=re[i][j][g];
return s;
}
void add(int x,int y,int z,int da)
{
int i,j,g;
for(i = x ; i <= n ; i+=lowbit(i))
for(j = y ; j <= n ; j+=lowbit(j))
for(g = z ; g <= n ; g+=lowbit(g))
re[i][j][g]+=da;
}
int main()
{
int k,x1,x2,x3,x4,x5,x6,p;
scanf("%d",&n);
while(scanf("%d",&k)!=EOF)
{
if(k==)
break;
if(k==)
{
scanf("%d%d%d%d",&x1,&x2,&x3,&p);
add(x1+,x2+,x3+,p);
}
else
{
scanf("%d%d%d%d%d%d",&x1,&x2,&x3,&x4,&x5,&x6);
x4+=,x5+=,x6+=;
int ans = ;
ans+=getsum(x4,x5,x6);
ans-=getsum(x1,x5,x6);
ans-=getsum(x4,x2,x6);
ans-=getsum(x4,x5,x3);
ans+=getsum(x1,x5,x3);
ans+=getsum(x4,x2,x3);
ans+=getsum(x1,x2,x6);
ans-=getsum(x1,x2,x3);
printf("%d\n",ans);
}
}
return ;
}
1470. UFOs(三维树状数组)的更多相关文章
- HDU 3584 三维树状数组
三维树状数组模版.优化不动了. #include <set> #include <map> #include <stack> #include <cmath& ...
- HDU 3584 Cube 【 三维树状数组 】
题意:还是那篇论文里面讲到的,三维树状数组http://wenku.baidu.com/view/1e51750abb68a98271fefaa8画个立方体出来对照一下好想一点 #include< ...
- HDU 3584 Cube (三维树状数组)
Problem Description Given an N*N*N cube A, whose elements are either 0 or 1. A[i, j, k] means the nu ...
- 暴力三维树状数组求曼哈顿距离求最值——牛客多校第八场D
涉及的知识点挺多,但是大多是套路 1.求曼哈顿距离的最值一般对所有情况进行讨论 2.三维树状数组用来求前缀最大值 /* 有一个三维坐标系(x,y,z),取值范围为[1,n],[1,m],[1,h],有 ...
- HDU 3584 Cube --三维树状数组
题意:给一个三维数组n*n*n,初始都为0,每次有两个操作: 1. 翻转(x1,y1,z1) -> (x2,y2,z2) 0. 查询A[x][y][z] (A为该数组) 解法:树状数组维护操作次 ...
- HDU 3584 Cube (三维 树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3584 Cube Problem Description Given an N*N*N cube A, ...
- HDU - 3584 Cube (三维树状数组 + 区间改动 + 单点求值)
HDU - 3584 Cube Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Subm ...
- HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
Jam's problem again Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- BIT 树状数组 详解 及 例题
(一)树状数组的概念 如果给定一个数组,要你求里面所有数的和,一般都会想到累加.但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组 ...
随机推荐
- IE11下ASP.NET Forms身份认证无法保存Cookie的问题
IE11下ASP.NET Forms身份认证无法保存Cookie的问题 折腾了三四天,今天才找到资料,解决了. 以下会转贴,还没来得及深究,先放着,有空再学习下. ASP.NET中使用Forms身份认 ...
- 使用OpenXml操作Excel,以下方法用于在添加列时修改Cell的CellReference属性。
以下方法实现了递增Excel中单元格的CellReference的功能,只支持两位字母. public static string CellReferenceIncrement(string cell ...
- MS也遵守规范了
CSS学的好不好,就看你对浏览器的兼容性处理的好不好. 拿opacity来说,本来写成opacity:0.3就完事了,但MS不来这套,它用filter,我们就不得不专门为它而 加上这么一大串(file ...
- 使用bootstrap+asp.net mvc4+IBatis.Net实现的小程序
这个项目用到了三个技术点 1.bootstap 3.0 2.asp.net mvc4 3.IBatis.Net 这个三个技术点分别解决前端界面展示.中间mvc路由控制.实体框架映射数据访问 重点分页问 ...
- jsp+oracle 排序分页+Pageutil类
1.rownum和排序 Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了. SQL> select rownum ,id,n ...
- 【转】STL中mem_fun和mem_fun_ref的用法及区别
原文:http://www.cppblog.com/mysileng/archive/2012/12/25/196615.html 引子: 怎么对容器中的所有对象都进行同一个操作?我们可能首先想到的是 ...
- 【学习总结】【多线程】 多线程概要 & GDC & NSOperation
基本需要知道的 : 进程 : 简单点来说就是,操作系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在受保护的内存空间内 线程 : 一个进程(进程)想执行任务,必须有线程(所以, ...
- 操作邮箱的类和文件的Md5【粘】
MailMessage mailMsg = new MailMessage();//两个类,别混了,要引入System.Net这个Assembly mailMsg.From ...
- Oracle和Redhat下载地址
Oracle RedHat 用户名:zhangwei900808@126.com 密码:@XxxxxXxxxxxx 有网友想要的,请在留言板给我留言,我会把用户名和密码发给你!
- 3.8 spring-qualifier 子元素的使用与解析
对于 qualifier 子元素,我们接触的更多的是注解形式,在使用Spring 自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个.当找不到一个匹配的 Bean 时, S ...