hdu3584(三维树状数组,区间修改,点查询)
来源:互联网 发布:如何清空手机数据 编辑:程序博客网 时间:2024/06/05 09:35
题目链接:点击打开链接
//hdu3584//题目大意:一个01的三维空间空间,两种操作:把一个区间的所有数取反,查询某个点的状态#include <iostream>#include <algorithm>#include <fstream>#include <sstream>#include <iomanip>#include <cstdio>#include <vector>#include <cstring>#include <cmath>#include <queue>#include <stack>#include <set>#include <map>#define L 110using namespace std;int c[L][L][L];int n, m;void add(int x, int y, int z, int d){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]+= d;}int sum(int x, int y, int z){int s= 0;for(int i= x; i> 0; i-= i&-i)for(int j= y; j> 0; j-= j&-j) for(int k= z; k> 0; k-= k&-k) s+= c[i][j][k];return s;}int main(){ while(scanf("%d%d", &n, &m)== 2) { memset(c, 0, sizeof(c)); while(m--) { int X; scanf("%d", &X); if(X== 1) { int x1, y1, z1, x2, y2, z2; scanf("%d%d%d%d%d%d", &x1, &y1, &z1, &x2, &y2, &z2); x2++; y2++; z2++; add(x2, y2, z2, 1); add(x1, y2, z2, 1); add(x2, y1, z2, 1); add(x2, y2, z1, 1); add(x2, y1, z1, 1); add(x1, y2, z1, 1); add(x1, y1, z2, 1); add(x1, y1, z1, 1); } if(X== 0) { int x, y, z; scanf("%d%d%d", &x, &y, &z); printf("%d\n", sum(x, y, z)& 1); } } } return 0;}
阅读全文
0 0
- hdu3584(三维树状数组,区间修改,点查询)
- hdu3584三维树状数组
- hdu3584--Cube(三维树状数组)
- hdu3584 Cube【三维树状数组】
- HDU3584 Cube【树状数组】【三维】
- HDU3584 Cube 三维树状数组
- [HDU3584] Cube - 三维树状数组
- 【树状数组】区间修改&点查询
- 【树状数组】点修改&区间查询
- hdu1556 树状数组 区间修改,点查询
- HDU 4031 Attack(树状数组修改区间查询点)
- hdu1556(树状数组/线段树,区间修改,点查询)
- poj2155(树状数组,区间修改,点查询)
- 三维树状数组(区间更新,单点查询)POJ
- HDU 1556(树状数组-区间修改,查询点)
- 树状数组应用之——区间修改 点查询
- HDU3584 Cube(三维树状区间更新+位运算)
- 树状数组 区间修改查询
- LeetCode 598. Range Addition II
- 使用 PHPExcel 读取\修改 xls文件
- servlet请求转发与重定向的区别
- ORACLE分页查询SQL语法——最高效的分页
- poi分步导出(将导出数据与下载分离)
- hdu3584(三维树状数组,区间修改,点查询)
- 文章标题
- Java中Filter、Listener,拦截器的学习
- USACO-Section2.2 Party Lamps【深度优先搜索】
- 3——FFMPEG之解复用器-----AVInputFormat
- Qt开发: 添加程序图标ico -【图文并茂】
- 20170725使用linux的GDB打印STL(vector,map,set..................)
- JavaWeb做导出功能时直接跳转新页面并显示乱码?
- 可视化存储智能解决方案之一“大话Raid2.0”