HDU 3584 Cube
题目大意:给定一个体积为N*N*N立方体,每个单位小立方体A[x][y][z]里有一个值,初始值全部为0,我们可以对立方体进行一下两种操作:
0表示查询A[x][y][z]的奇偶性
1表示对子立方体的每个元素的值进行增减
题解:首先显然是三维的树状数组,然后对于区间的修改,可以用前缀和来解决,在起点改变一下,终点的后一位改变一下即可。
#include <cstring>
#include <cstdio>
#define N 105
using namespace std;
int c[N][N][N];
int n;
void add(int x,int y,int z){
int i,j,k;
for(i=x;i<N;i+=i&-i)
for(j=y;j<N;j+=j&-j)
for(k=z;k<N;k+=k&-k)
c[i][j][k]^=1;
}
int sum(int x,int y,int z){
int i,j,k,ret=0;
for(i=x;i>0;i-=i&-i)
for(j=y;j>0;j-=j&-j)
for(k=z;k>0;k-=k&-k)
ret+=c[i][j][k];
return ret;
}
int main(){
int x1,x2,y1,y2,z1,z2,i,m,q;
while(scanf("%d%d",&n,&m)!=EOF){
memset(c,0,sizeof(c));
for(i=1;i<=m;i++){
scanf("%d",&q);if(q){
scanf("%d%d%d%d%d%d",&x1,&y1,&z1,&x2,&y2,&z2);
add(x1,y1,z1);
add(x2+1,y1,z1);
add(x1,y2+1,z1);
add(x1,y1,z2+1);
add(x2+1,y2+1,z1);
add(x2+1,y1,z2+1);
add(x1,y2+1,z2+1);
add(x2+1,y2+1,z2+1);
}else{
scanf("%d%d%d",&x1,&y1,&z1);
printf("%d\n",sum(x1,y1,z1)&1);
}
}
}
return 0;
}
HDU 3584 Cube的更多相关文章
- HDU - 3584 Cube (三维树状数组 + 区间改动 + 单点求值)
HDU - 3584 Cube Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Subm ...
- 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(三位树状数组)
Cube Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- HDU 3584 Cube (三维数状数组)
Cube Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- 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 ...
- HDU 3584 Cube --三维树状数组
题意:给一个三维数组n*n*n,初始都为0,每次有两个操作: 1. 翻转(x1,y1,z1) -> (x2,y2,z2) 0. 查询A[x][y][z] (A为该数组) 解法:树状数组维护操作次 ...
- HDU 3584 Cube 【 三维树状数组 】
题意:还是那篇论文里面讲到的,三维树状数组http://wenku.baidu.com/view/1e51750abb68a98271fefaa8画个立方体出来对照一下好想一点 #include< ...
- hdu 4670 Cube number on a tree(点分治)
Cube number on a tree Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/ ...
- HDU 1220 Cube(数学,找规律)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1220 Cube Time Limit: 2000/1000 MS (Java/Others) M ...
随机推荐
- [Java]HashMap的两种排序方式
先将 Map 中的 key 和 value 全部取出来封装成 JavaBea 数组,再将这个数组排序,排序完成后,重新写回 Map 中,写回时采用 LinkedHashMap 可以保证迭代的顺序. 下 ...
- iOS 16进制颜色转换10进制颜色
+(UIColor *)colorWithHexString:(NSString *)coloStr{ // 检索 去下空格和换行 转成大写 NSString *cString = [[col ...
- 代码风格——Cocos2d-x学习历程(四)
1.Cocos2d-x拥有一个包含其他所有头文件的文件"cocos2d.h".通常,我们只需要在使用时包含这个头文件,就可以使用引擎的全部功能了. 2.Cocos2d-x的类都放置 ...
- BOOL、sizeof
BOOL使用前需要声明 #include <stdbool.h>(这个头文件定义了bool,true,false等宏) int a[5]; sizeof(a[5]),sizeof是关键字, ...
- 【转】jsp 表单form传值
写的很好,看到了忍不住不转啊,希望可以分享一下~~ 转载自http://blog.csdn.net/anmei2010/article/details/4140216 页面间链接和数据传递的三种方式 ...
- 转: JS自定义事件的定义和触发(createEvent, dispatchEvent)
四.伪DOM自定义事件 这里的“伪DOM自定义事件”是自己定义的一个名词,用来区分DOM自定义事件的.例如jQuery库,其是基于包装器(一个包含DOM元素的中间层)扩展事件的,既与DOM相关,又不直 ...
- java的数学函数总结
java的数学函数都放在java.lang这个包中,并且这些函数的方法在类Math中是作为static方法出现的,所以要引用一个特定的函数,只需将类Math和一个圆点写在要使用的方法前就好.如方法sq ...
- android技术牛人的博客[转]
Android+JNI调用–文件操作 开发环境:Windows xp sp3 +MyEclipse 8.6+android2.3.3+jdk1.6+android-ndk-r6b JNI概述: ...
- Sql 字符串操作类COALESCE
SqlServer中肯定有过将表中某列的值拼接成字符串,以","或者其他符号隔开的情况吧,一般情况我们会这样做: declare @returnValue nvarchar(max ...
- jade初学
jade是一个比ejs略难得模板.express的默认模本就是jade. 今天看了一下其实不是太难~~ 笔记: jade中使用缩进来定义HTML文档的层次结构 jade不需要关闭标签 给div添加id ...