三维树状数组模版。优化不动了。

  1. #include <set>
  2. #include <map>
  3. #include <stack>
  4. #include <cmath>
  5. #include <queue>
  6. #include <cstdio>
  7. #include <string>
  8. #include <vector>
  9. #include <iomanip>
  10. #include <cstring>
  11. #include <iostream>
  12. #include <algorithm>
  13. #define Max 2505
  14. #define FI first
  15. #define SE second
  16. #define ll long long
  17. #define PI acos(-1.0)
  18. #define inf 0x3fffffff
  19. #define LL(x) ( x << 1 )
  20. #define bug puts("here")
  21. #define PII pair<int,int>
  22. #define RR(x) ( x << 1 | 1 )
  23. #define mp(a,b) make_pair(a,b)
  24. #define mem(a,b) memset(a,b,sizeof(a))
  25. #define REP(i,s,t) for( int i = ( s ) ; i <= ( t ) ; ++ i )
  26.  
  27. using namespace std;
  28.  
  29. int n , m ;
  30. int c[101][101][101] ;
  31. inline void RD(int &ret) {
  32. char c;
  33. do {
  34. c = getchar();
  35. } while(c < '0' || c > '9') ;
  36. ret = c - '0';
  37. while((c=getchar()) >= '0' && c <= '9')
  38. ret = ret * 10 + ( c - '0' );
  39. }
  40.  
  41. inline void OT(int a) {
  42. if(a >= 10)OT(a / 10) ;
  43. putchar(a % 10 + '0') ;
  44. }
  45. void update(int x , int y ,int z) {
  46. for (int i = x ; i <= n ; i += i & (-i) )
  47. for (int j = y ; j <= n ; j += j & (-j))
  48. for (int k = z ; k <= n ; k += k & (-k))
  49. c[i][j][k] ++ ;
  50. }
  51. bool query(int x ,int y,int z) {
  52. int ans = 0 ;
  53. for (int i = x ; i >= 1 ; i -= i & (-i))
  54. for (int j = y ; j >=1 ; j -= j & (-j))
  55. for (int k = z ; k >= 1 ; k -= k & (-k))
  56. ans += c[i][j][k] ;
  57. return ans & 1 ;
  58. }
  59. void init() {
  60. for (int i = 0 ; i <= n ; i ++ )
  61. for (int j = 0 ; j <= n ; j ++ )
  62. for (int k = 0 ; k <= n ; k ++ )
  63. c[i][j][k] = 0 ;
  64. }
  65. int main() {
  66. int x , y , z ;
  67. int xx , yy , zz ;
  68. int op ;
  69. while(scanf("%d%d",&n,&m) == 2) {
  70.  
  71. while(m -- ) {
  72. RD(op) ;
  73. if(op & 1) {
  74. RD(x) ;RD(y) ;RD(z) ;
  75. RD(xx) ;RD(yy) ;RD(zz) ;
  76. update(x , y , z ) ;
  77. update(xx + 1 , y , z ) ;
  78. update(xx + 1 , yy + 1 , z ) ;
  79. update(xx + 1 , yy + 1 , zz + 1 ) ;
  80. update(xx + 1 , y , zz + 1 ) ;
  81. update(x , y , zz + 1 ) ;
  82. update(x , yy + 1 , zz + 1 ) ;
  83. update(x , yy + 1 , z ) ;
  84. } else {
  85. RD(x) ;RD(y) ;RD(z) ;
  86. OT(query(x , y , z)) ;
  87. putchar('\n') ;
  88. }
  89. }
  90. init() ;
  91. }
  92. return 0 ;
  93. }

HDU 3584 三维树状数组的更多相关文章

  1. HDU 3584 Cube 【 三维树状数组 】

    题意:还是那篇论文里面讲到的,三维树状数组http://wenku.baidu.com/view/1e51750abb68a98271fefaa8画个立方体出来对照一下好想一点 #include< ...

  2. 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 ...

  3. 1470. UFOs(三维树状数组)

    1470 最简单的三维树状数组 #include <iostream> #include<cstdio> #include<cstring> #include< ...

  4. 暴力三维树状数组求曼哈顿距离求最值——牛客多校第八场D

    涉及的知识点挺多,但是大多是套路 1.求曼哈顿距离的最值一般对所有情况进行讨论 2.三维树状数组用来求前缀最大值 /* 有一个三维坐标系(x,y,z),取值范围为[1,n],[1,m],[1,h],有 ...

  5. HDU 3584 Cube --三维树状数组

    题意:给一个三维数组n*n*n,初始都为0,每次有两个操作: 1. 翻转(x1,y1,z1) -> (x2,y2,z2) 0. 查询A[x][y][z] (A为该数组) 解法:树状数组维护操作次 ...

  6. HDU 2689Sort it 树状数组 逆序对

    Sort it Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  7. HDU 2838 (DP+树状数组维护带权排序)

    Reference: http://blog.csdn.net/me4546/article/details/6333225 题目链接: http://acm.hdu.edu.cn/showprobl ...

  8. hdu 4046 Panda 树状数组

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4046 When I wrote down this letter, you may have been ...

  9. hdu 5497 Inversion 树状数组 逆序对,单点修改

    Inversion Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5497 ...

随机推荐

  1. django-extensions

    命令行: admin后台管理扩展 后面会出现个放大镜实现搜索补齐功能. 交互式的 Python Shells(shell_plus) 实现自动导入 如果遇到apps中包含的的models名字出现冲突, ...

  2. Week11(11月21日)

    Part I:提问 =========================== 1.如何编辑更新一条记录? Part II:案例学习 =========================== MusicSt ...

  3. QSplashScreen无法背景透明的解决办法(强制StyleSheet生效)

    setWindowFlags(Qt::WindowStaysOnTopHint | Qt::SplashScreen | Qt::FramelessWindowHint); setAttribute( ...

  4. Flask web开发 请求拦截和预处理

    我们在开发WEB应用时,往往会需要对所有的url请求进行拦截,做些预处理,比如权限处理.日志等统一处理. 本文介绍一下Flask中的处理机制.我们通过一个简单的例子来说明. 1.编写一个简单应用 ru ...

  5. 作业还是作孽?——Leo鉴书79

    中国孩子,尤其是城市孩子课业过重是个不争的事实.儿子上幼儿园的作业已经能做到8点多了,上小学之后不知道是不是会整得更晚.于是入手这本<家庭作业的迷思>,认真读读.请特别注意,不要买书叫&q ...

  6. Linux内核源代码解析之——我与神童聊Linux内核

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11619609 我的朋友里,至少有2.5个神童. 有的 ...

  7. AOP编程

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. 百度网盘自动上传脚本-bpcs_uploader

    安装jsonpear install pecl/json 一.bpcs_uploader下载和使用: 1.下载地址:http://oott123.github.com/bpcs_uploader/ 2 ...

  9. nginx 解决400 bad request 的方法

    nginx的400错误比较难查找原因,因为此错误并不是每次都会出现的,另外,出现错误的时候,通常在浏览器和日志里看不到任何有关提示. 经长时间观察和大量试验查明,此乃request header过大所 ...

  10. 初始WebApi 利用WebApi实现基础的CRUD

    微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService.它是简单,代码 ...