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

  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. QT5.6所开放的7个新模块(图表,虚拟键盘,性能分析,静态分析,测试正好,2D渲染)

    The modules newly available to open source users are: Qt Charts Qt Data Visualization Qt Virtual Key ...

  2. Android HttpClient HttpURLConnection相关介绍

    Android HttpClient HttpURLConnection相关介绍 遇到一个问题 在android studio上用HttpClient编写网络访问代码的时候,发现该类无法导入并使用.. ...

  3. Flask web开发 简单介绍

    Flask是一个基于python的轻量级web框架.当安装好后Flask后 (pip install flask),就可以开始使用了. 一.最简单的例子 1.新建目录,作为web应用的目录,如: mk ...

  4. 一个RPC的demo

    从下面的例子中可以看到,Consumer(client)的代码中引用了Provider部分的class,本例中是 com.provider.EchoServiceImpl和com.provider.E ...

  5. 一步一步重写 CodeIgniter 框架 (11) —— 使用 CodeIgniter 函数库

    在完成了CI框架的类库扩展后,很自然我们就会想到函数库的扩展.函数库的扩展在 CI 中称为 helper 函数与类有不同的地方,它不能继承,只能覆盖或者添加新的函数,或者直接完全新定义的一组函数. 由 ...

  6. 用php 把数组中偶数,选择出来

    我有这种一个小算法,把数组中的全部的偶数或技术分别选择出来.非常多人可能,会循环这个数组,而我恰恰不循环数组就能做到这一点.代码例如以下. function odd($var) { // return ...

  7. Win8.1应用开发之异步编程

    在win8应用商店开发时,我们会遇到很多异步方法.它们存在的目的就是为了确保你的应用在运行须要大量时间的任务时仍能保持良好的响应,也就是说调用异步API是为了响应用户的操作.设想一下我们点击一个But ...

  8. Oracle 11g RAC OCR 与 db_unique_name 配置关系 说明

    一. 问题一 在做RAC standby 的alert log里发现如下错误: SUCCESS: diskgroup DATA was mounted ERROR: failed toestablis ...

  9. 转:onConfigurationChanged的作用

    API原文说明:android:configChangesLists configuration changes that the activity will handle itself. When ...

  10. JS图片上传后base64转码

    代码: // 获取文件流 var fileObj = document.getElementById('inputId').files; // 实例化一个FileReader对象 var reader ...