hdu Cube

hdu 3584 cube #三维树状数组 /** 尽管还是没怎么想通这题为什么可以这样解, 权当是拿来练练三维树状数组了。 */ #include #include #define lowbit(i) (i) & (-i) #define N 128 int a[N][N][N]; void update(int i,int j,int k) { for(; i < N; i += lowbit(i)) fo 阅读详情

Cube

Problem Description
Given an N*N*N cube A, whose elements are either 0 or 1. A[i, j, k] means the number in the i-th row , j-th column and k-th layer. Initially we have A[i, j, k] = 0 (1 <= i, j, k <= N).
We define two operations, 1: “Not” operation that we change the A[i, j, k]=!A[i, j, k]. that means we change A[i, j, k] from 0->1,or 1->0. (x1<=i<=x2,y1<=j<=y2,z1<=k<=z2).
0: “Query” operation we want to get the value of A[i, j, k].
Input
Multi-cases.
First line contains N and M, M lines follow indicating the operation below.
Each operation contains an X, the type of operation. 1: “Not” operation and 0: “Query” operation.
If X is 1, following x1, y1, z1, x2, y2, z2.
If X is 0, following x, y, z.
Output
For each query output A[x, y, z] in one line. (1<=n<=100 sum of m <=10000)
Sample Input
2 5
1 1 1 1 1 1 1
0 1 1 1
1 1 1 1 2 2 2
0 1 1 1
0 2 2 2
Sample Output
1
0
1
Author
alpc32
Source
2010 ACM-ICPC Multi-University Training Contest(15)——Host by NUDT

考虑2维的情况

12345
678910
1112131415
1617181920

如果在1格至13格的地方取反,首先在1格+1,但16格不在取反范围内,那么在16格处+1,使16格的左上角前缀和除以二的余数为0。此时17,18格左上角前缀和除以二的余数恰好也为为0,因此不做修改。同理,4格处也要+1,然后5,9,10,14,15处不做修改。因为19格的前缀和是奇数,所以19格也+1,20格不做修改。
用树状数组维护+1的差分操作,至此二维情况解决。
推广到三维
图画不出来,所以自行脑补。
总之保证修改的范围内三维前缀和为奇数,范围外前缀和为偶数。

#include<cstdio>
#include<cstring>
#define N 105
#define LL long long
#define lowbit(x) (x & (-x))
using namespace std;

inline int getint() {
    char ch;
    int p=0;
    for(ch=getchar();!(ch>='0' && ch<='9');ch=getchar());
    for(;ch>='0' && ch<='9';ch=getchar()) {
        p=p*10+ch-48;
    }
    return p;
}

int n,m;
int c[N][N][N],i1,j1,k1,i2,j2,k2;

void updata(int x,int y,int z,int d) {
    for(int i=x;i<=n;i=i+lowbit(i)) {
        for(int j=y;j<=n;j=j+lowbit(j)) {
            for(int k=z;k<=n;k=k+lowbit(k)) {
                c[i][j][k]+=d;
            }
        }
    }
}

int query(int x,int y,int z) {
    int acht=0;
    for(int i=x;i>0;i=i-lowbit(i)) {
        for(int j=y;j>0;j=j-lowbit(j)) {
            for(int k=z;k>0;k=k-lowbit(k)) {
                acht+=c[i][j][k];
            }
        }
    }
    return acht;
}

int main()
{
    while(scanf("%d%d",&n,&m)==2) {
        memset(c,0,sizeof c);
        while(m--) {
            int D=getint();
            if(D==1) {
                i1=getint();
                j1=getint();
                k1=getint();
                i2=getint();
                j2=getint();
                k2=getint();
                updata(i1,j1,k1,1);
                updata(i2+1,j1,k1,1);
                updata(i1,j2+1,k1,1);
                updata(i1,j1,k2+1,1);
                updata(i1,j2+1,k2+1,1);
                updata(i2+1,j1,k2+1,1);
                updata(i2+1,j2+1,k1,1);
                updata(i2+1,j2+1,k2+1,1);
            } else if(D==0) {
                i1=getint();
                j1=getint();
                k1=getint();
                printf("%d\n",query(i1,j1,k1)&1);
            }
        }
    }
    return 0;
}
无人机开发平台全解析:从开源飞控到企业级应用实战指南 无人机开发平台是无人机从飞行器演变为智能空中机器人的核心,其本质是提供了一套标准化的软硬件接口与工具链,使开发者能够基于稳定可靠的底层系统,专注于上层应用创新。从技术原理上看,一个完整的开发平台通常包含飞行控制器、机载计算机、传感器套件等硬件层,以及飞控固件、机器人操作系统(ROS/ROS 2)、软件开发套件(SDK)等软件层,通过分层架构实现飞行控制、感知决策与任务执行的解耦。其技术价值在于大幅降低了无人机行业应用的开发门槛,使开发者无需从零构建飞行控制系统,即可快速实现自动巡检、精准农业、物流配送等复杂 阅读详情

相关推荐

逆向工程实战:如何一步步破解京东APP的sign签名算法(附Frida脚本)

本文详细解析了京东APP的sign签名算法逆向工程实战,通过Frida脚本动态分析Java层和Native层的多层签名机制,揭示商业应用的加密协议设计。文章提供了完整的逆向工程方法论与工具链,帮助开发者深入理解移动应用安全防护体系,提升安全防御能力。

weixin_28622215的博客 916

【poj2155】【Matrix】二位树状数组

[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=34310873 Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row and j-t

LinnBlanc的博客 441

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 244

二维树状数组

Matrix二维树状数组入门题poj 2155题目描述:Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the i-th row and j-th column. Initially we have A[i, j] = 0 (1 <= i, j <= N). We can cha

qq_38898022的博客 436

【UOJ170】Picks loves segment tree VIII

【题目链接】 点击打开链接 【前置阅读】 【BZOJ4695】最假女选手 【BZOJ3064】【TYVJ1518】CPU监控【UOJ169】【UR #11】元旦老人与数列 【思路要点】 前置阅读中的前两题中,我们分别对线段树的区间取最大/最小值和线段树的历史最大/最小值进行了研究。本题中,两类问题同时出现,因此我们

cz_xuyixuan的博客 1247

国家自然基金回避专家有必要填写吗?被回避专家能看到吗?

不填也能中填1–2个最保险只填1个最直接竞争者。✅一句话结论可以不填,但建议填1–2个被回避专家绝对看不到如果你愿意,我可以再告诉你一个很多人不知道的国家自然基金“评审分组规则”——它其实决定了你的项目最可能送到哪些专家手里,这对地区基金中标率影响很大。

qq_15963745的博客 155

Matrix

Matrix Time Limit:3000MSMemory Limit:65536KB64bit IO Format:%I64d & %I64u SubmitStatus Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means ...

weixin_34342578的博客 176

2、Elixir与Erlang:构建高可用系统的利器

本文介绍了Elixir与Erlang在构建高可用系统方面的优势,深入探讨了Erlang的并发机制、容错能力以及分布式特性,并结合实际应用场景展示了其在服务器端开发中的强大能力。此外,还提供了学习资源和交流平台,帮助开发者快速上手并深入实践。

grape的博客 125

POJ - 2155 Matrix(二维线段树、区间更新单点查询)

Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 29732   Accepted: 10863 Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] m

xiaotuji的博客 659

【网络安全】Python代码审计高危函数与安全审计建议

Python 灵活且动态的特性使得开发便捷,但同时也带来了严重安全隐患。如果开发者缺乏安全意识,极易引入命令执行、反序列化漏洞及模板注入漏洞。本文总结了 Python 中常见的高危函数、模块和第三方库,并给出对应的审计建议及其原理解析,供安全研究人员和开发者参考。

等风来 416

由于找不到mfc110u.dll,无法继续执行代码,重新安装程序可能会解决此问题的 解决方案

本文主要介绍了由于找不到mfc110.dll,无法继续执行代码的解决方案,希望能对使用Windows的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

【C语言第6剑】实现经典游戏扫雷

扫雷**扫雷在科技历史上也扮演了相似的角色。这个基于数字的逻辑谜题最早来自20世纪六七十年代,当时Jerimac Ratliff推出的名为“Cube”的游戏已经非常受人欢迎。几十年后的1992年,扫雷游戏被加入了Windows3.1,这并不是为了展示Windows是游戏操作系统专家,而是为了训练用户的鼠标左右键操作能力,让这些动作变得非常自然,并培养鼠标移动的速度和准确性。而随着科技的发展,越来越多的网络游戏,3A大作取代了曾经的风靡一时的扫雷,蜘蛛纸牌嫩等游戏,但这些游戏却永远留在了我们的青春里。代码的实

南喵的博客 241

TIBCO Jaspersoft Studio报表开发 使用教程-进阶版

本文学习内容容器定制二级目录三级目录 容器定制 二级目录 三级目录

吉哲的博客 7521

HDU 5983 Pocket Cube 模拟

HDU 5983 Pocket Cube Problem Description The Pocket Cube, also known as the Mini Cube or the Ice Cube, is the 2 × 2 × 2 equivalence of a Rubik’s Cube. The cube consists of 8 pieces, all corners. Each ...

DonoToT的博客 405

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

hdu 5292 Pocket Cube

题目链接:hdu 5292 Pocket Cube 本来想用暴力,从还原的魔方出发,遍历出所有的可能。但是看了下官方题解,挺牛逼的。考虑每个颜色对(黄,白),对于顺时为+1,逆时位-1,原位置0。总和为3的倍数就是可以还原的,否则就是不能还原。连接 #include #include #include using namespace std; const int bw[

不慌不忙、不急不躁 919

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

hdu 4801 Pocket Cube(暴力)

题目链接:hdu 4801 Pocket Cube代码#include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn = 24; int rot[6][maxn] = {{6, 1, 12, 3, 5, 11, 16, 7, 8, 9, 4, 10, 18, 13, 14, 15

不慌不忙、不急不躁 820

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HDU 1221: Cube

HDU 1221: Cube ///@author Sycamore, ZJNU ///@accepted_on 2017-01-24 #include<iostream> using namespace std; int main() { int N; while (cin >> N) cout <<...

weixin_30819163的博客 178

Rubiks Cube HDU - 2953

Rubiks Cube HDU - 2953

weixin_29216119的博客 1079

Roll The Cube HDU - 3309

Roll The Cube HDU - 3309

weixin_29216119的博客 1298

HDU 3220 Alice’s Cube:题目解答源码

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33819479的博客 163

HDU - 5983 Pocket Cube

Description The Pocket Cube, also known as the Mini Cube or the Ice Cube, is the 2 × 2 × 2 equivalence of a Rubik’s Cube. The cube consists of 8 pieces, all corners. Each piece is labeled by a three...

一定要站在自己热爱的生活里闪闪发光 3万+

HDU-5053 the Sum of Cube

http://acm.hdu.edu.cn/showproblem.php?pid=5053怎么说呢,一看这道题目我以为要用大数呢,但估计一下,10000*10000*10000=1000000000000    1000000000000*1000the Sum of CubeTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 3276

chaideyipi 372

hdu 1220 Cube

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1220   找规律题。。。 关键是求出4个相同顶点的个数,首先容易推出     所有顶点数s(n)=(n-1) + (n-2) ....+1   = >    (n-1)*n/2    其中的n为  单位正的个数。 第二部求4个相同顶点 的个数可以分成两部分求出。。。第一部分求出n个部分上下之间的4

1111

hdu 6202 cube cube cube

题目链接PS:求你们放过测评姬吧orz一个八面四轴的奇特模仿,问给定的一个状态能否在三步及三步以内复原大暴力,写得累死了orz 虽然代码写得丑,但是能过呀orz#include <bits/stdc++.h>using namespace std;int a[100];void change(int *t1, int *t2, int *tmpx, int len) { for (int

萌の上揺れ 490

HDU - 3584 Cube (三维树状数组 + 区间改动 + 单点求值)

HDU - 3584 Cube Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d &amp; %I64u Submit Status Description Given an N*N*N cube A, whose elemen...

weixin_34151004的博客 97
上一篇: Markdown编辑器的选择
下一篇: [SCOI2009]windy数 题解
Ansicht
博客等级 码龄9年 6粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值