HDU 3584 三维树状数组
三维树状数组模版。优化不动了。
#include <set>
#include <map>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <string>
#include <vector>
#include <iomanip>
#include <cstring>
#include <iostream>
#include <algorithm>
#define Max 2505
#define FI first
#define SE second
#define ll long long
#define PI acos(-1.0)
#define inf 0x3fffffff
#define LL(x) ( x << 1 )
#define bug puts("here")
#define PII pair<int,int>
#define RR(x) ( x << 1 | 1 )
#define mp(a,b) make_pair(a,b)
#define mem(a,b) memset(a,b,sizeof(a))
#define REP(i,s,t) for( int i = ( s ) ; i <= ( t ) ; ++ i ) using namespace std; int n , m ;
int c[101][101][101] ;
inline void RD(int &ret) {
char c;
do {
c = getchar();
} while(c < '0' || c > '9') ;
ret = c - '0';
while((c=getchar()) >= '0' && c <= '9')
ret = ret * 10 + ( c - '0' );
} inline void OT(int a) {
if(a >= 10)OT(a / 10) ;
putchar(a % 10 + '0') ;
}
void update(int x , int y ,int z) {
for (int i = x ; i <= n ; i += i & (-i) )
for (int j = y ; j <= n ; j += j & (-j))
for (int k = z ; k <= n ; k += k & (-k))
c[i][j][k] ++ ;
}
bool query(int x ,int y,int z) {
int ans = 0 ;
for (int i = x ; i >= 1 ; i -= i & (-i))
for (int j = y ; j >=1 ; j -= j & (-j))
for (int k = z ; k >= 1 ; k -= k & (-k))
ans += c[i][j][k] ;
return ans & 1 ;
}
void init() {
for (int i = 0 ; i <= n ; i ++ )
for (int j = 0 ; j <= n ; j ++ )
for (int k = 0 ; k <= n ; k ++ )
c[i][j][k] = 0 ;
}
int main() {
int x , y , z ;
int xx , yy , zz ;
int op ;
while(scanf("%d%d",&n,&m) == 2) { while(m -- ) {
RD(op) ;
if(op & 1) {
RD(x) ;RD(y) ;RD(z) ;
RD(xx) ;RD(yy) ;RD(zz) ;
update(x , y , z ) ;
update(xx + 1 , y , z ) ;
update(xx + 1 , yy + 1 , z ) ;
update(xx + 1 , yy + 1 , zz + 1 ) ;
update(xx + 1 , y , zz + 1 ) ;
update(x , y , zz + 1 ) ;
update(x , yy + 1 , zz + 1 ) ;
update(x , yy + 1 , z ) ;
} else {
RD(x) ;RD(y) ;RD(z) ;
OT(query(x , y , z)) ;
putchar('\n') ;
}
}
init() ;
}
return 0 ;
}
HDU 3584 三维树状数组的更多相关文章
- 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 ...
- 1470. UFOs(三维树状数组)
1470 最简单的三维树状数组 #include <iostream> #include<cstdio> #include<cstring> #include< ...
- 暴力三维树状数组求曼哈顿距离求最值——牛客多校第八场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 2689Sort it 树状数组 逆序对
Sort it Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- HDU 2838 (DP+树状数组维护带权排序)
Reference: http://blog.csdn.net/me4546/article/details/6333225 题目链接: http://acm.hdu.edu.cn/showprobl ...
- hdu 4046 Panda 树状数组
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4046 When I wrote down this letter, you may have been ...
- hdu 5497 Inversion 树状数组 逆序对,单点修改
Inversion Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5497 ...
随机推荐
- 为什么使用LUT比GAL 节省资源
为什么使用LUT比GAL 节省资源 A[1:0] B[1:0] 实现一个比较器,如果A=B输出1 否则输出0 传统的GAL 需要 24= 16个存储单元(ROM)来存储结果数据,实现方法 ...
- MAC X OS 自定义分辨率
1 vi /Library/Preferences/SystemConfiguration/com.apple.Boot.plist 2 3 将该文件修改成如下内容: 4 5 <key>G ...
- 发送邮件给某人:mailto标签
mailto标签 1.标签最简式 <a href="mailto:xxx@xx.com">联系站长</a> 2.标签帮你填抄送地址 <a href=& ...
- Sql 增加字段(有些只能在ORACLE中运行)
增加字段 alter table table_name add column_name varchar(200) 删除字段 ALTER TABLE table_NAME DROP COLUMN col ...
- Excel自己定义纸张打印设置碰到无法对上尺寸的问题
作者:iamlaosong 据操作人员反映.自己定义纸张设置无论用,打印时每页表头都会下移,非常快就跑偏到下涨纸了. 打印机是针打,齿轮进纸.应该非常精确的.初步怀疑纸张尺寸量的有问题,建议其多量几页 ...
- 解决 RichTextBox 文件格式不对问题
RichTextBox文件格式不对: 原因:富文本框的LoadFile方法只支持RTF格式的文件或者标准的ASCII文本本档,,我们一般的文本文档是ANSI或者UTF-8的格式,所以,报这个错. 解决 ...
- android:android:background="#00000000",透明效果
ImageButton中设置 android:background="#00000000",可以达到透明效果 具体的源码 管理-->文件中的 viewpager0829.ra ...
- MySQL优化必须调整的10项配置
当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议.许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项.这篇文章的目的在于 ...
- java--线程状态
1.新建状态 Thread t1 = new Thread(); 创建之后,就已经有了相应的内存和其他资源,但是还是处于不可运行状态. 2.就绪状态 当一个线程使用.start()启动之后就处于就绪状 ...
- HDU4707:Pet(DFS)
Problem Description One day, Lin Ji wake up in the morning and found that his pethamster escaped. He ...