hdu 5465 Clarke and puzzle (二维树状数组+nim博弈)

Screenshot_2026-11-04-16-26-45-46.jpg 立即下载

解析:

利用二维树状数组来区间询问异或和,以及单点更新,然后利用nim博弈的结论判断胜负。

my code

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 505;
int n, m, q;

struct BIT {
    int c[N][N];

    void clear() { memset(c, 0, sizeof(c)); }

    inline int lowbit(int x) { return x & (-x); }

    int query(int x, int y) {
        int res = 0;
        for(int i = x; i > 0; i -= lowbit(i)) {
            for(int j = y; j > 0; j -= lowbit(j)) {
                res ^= c[i][j];
            }
        }
        return res;
    }

    int query(int x1, int y1, int x2, int y2) {
        x1--, y1--;
        int area[2][2] = {0};
        area[0][0] = query(x1, y1); area[1][1] = query(x2, y2);
        area[0][1] = query(x1, y2); area[1][0] = query(x2, y1);
        int res = 0;
        for(int i = 0; i < 2; i++)
            for(int j = 0; j < 2; j++)
                res ^= area[i][j];
        return res;
    }

    void add(int x, int y, int val) {
        for(int i = x; i <= n; i += lowbit(i))
            for(int j = y; j <= m; j += lowbit(j))
                c[i][j] ^= val;
    }

    void modify(int x, int y, int val) {
        add(x, y, query(x, y, x, y));
        add(x, y, val);
    }
} bit;

int main() {
    int op, x1, x2, y1, y2, val;

    int T;
    scanf("%d", &T);

    while(T--) {
        scanf("%d%d%d", &n, &m, &q);

        bit.clear();
        for(int i = 1; i <= n; i++) {
            for(int j = 1; j <= m; j++) {
                scanf("%d", &val);
                bit.add(i, j, val);
            }
        }
        while(q--) {
            scanf("%d", &op);
            if(op == 1) {
                scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
                int ans = bit.query(x1, y1, x2, y2);
                puts(ans != 0 ? "Yes" : "No");
            }else {
                scanf("%d%d%d", &x1, &y1, &val);
                bit.modify(x1, y1, val);
            }
        }
    }
    return 0;
}
互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识 立即下载

相关推荐

好的,技术转移行业资深专家为您撰写如下。.docx

好的,技术转移行业资深专家为您撰写如下。

hdu 5465 Clarke and puzzle(二维树状数组)

题目链接:hdu 5465 Clarke and puzzle代码#include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn = 505; #define lowbit(x) ((x)&(-x))int N, M, Q, A[maxn][maxn], fenw[maxn][m

不慌不忙、不急不躁 575

【动态多智能体系统的通信感知编队控制】一种新颖的通信感知编队控制策略,用于动态多智能体系统研究(Matlab代码、Python代码实现)

内容概要:文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其内容并未深入介绍Plecs环境下全桥LLC谐振变换器的具体建模与仿真过程,而是呈现为一份涵盖多领域科研主题的资源列表。文档内容广泛涉及多智能体系统控制、无人机路径规划、电力电子变换器、状态估计、信号处理、优化算法等研究方向,并多次提及Matlab/Simulink、Python等工具的代码实现。整体来看,该文档更像是一份科研项目目录或技术资源索引,重点推介了包括LLC谐振变换器在内的多种控制系统与电力电子仿真模型,但对标题所述核心内容缺乏详尽的技术描述与实现细节。; 适合人群:电力电子、自动化、控制工程、信号处理及多智能体系统等相关领域的研究生、科研人员与工程技术人员。; 使用场景及目标:①为科研工作者提供跨学科的技术方向参考与研究选题灵感;②获取电力系统、无人机控制、信号处理等领域成熟的Matlab/Simulink或Python仿真代码资源,用于算法验证与模型复现。; 阅读建议:建议将此文档作为科研资源导航目录使用,读者可根据自身研究方向筛选感兴趣的主题,并通过文中提供的公众号或网盘链接获取完整的代码、仿真模型与配套资料进行深入学习与实践。

hdu 5465 (树状数组 + 博弈)

题意:基于矩阵的NIM游戏,求异或和。 思路:在x1,y1 到 x2, y2的异或和 = A[ x2 ][ y2 ] ^ A[x1-1][ y2 ] ^ A[ x2 ][y1 - 1] ^ A[ x1-1 ][ y1 - 1 ] 先普通来了两次,结果都超时。 上个二维树状数组AC #include <cstdio> #include <cstri...

diaocuiguo2493的博客 139

产业园区运营负责人如何提升企业技术需求与科研资源的精准匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

论文阅读笔记(一)细粒度图像检索

0、参考文献 [1]见微知著 http://geek.youkuaiyun.com/news/detail/191718 [2]Xiu-Shen Wei 《Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval》 [3]Lingxi Xie 《Fine-Grained Image Search》 1...

huang2818138的博客 1万+

hdu 5465 二维树状数组+nim博弈

题意: 问题描述 克拉克是一名人格分裂患者。某一天,有两个克拉克(aaa和bbb)在玩一个方格游戏。 这个方格是一个n∗mn*mn∗m的矩阵,每个格子里有一个数ci,jc_{i, j}c​i,j​​。 aaa想开挂,想知道如何打败bbb。 他们要玩qqq次游戏,每一次做一次操作: 1. 取出当中的一个子矩阵(x1,y1)−(x2,y2)(x_1, y_1)-(x_2, y_

渐近自由 689

直流有刷电机三环PID控制:从硬件配置到软件调试全解析

本文全面解析了直流有刷电机的三环PID控制技术,涵盖从硬件选型(如驱动板、编码器)到STM32软件配置的全过程。详细阐述了位置环、速度环、电流环的串级协同工作原理与调试方法,并提供了位置式PID算法的C语言实现代码及参数整定技巧,旨在帮助开发者实现精准、稳定的电机运动控制。

weixin_29290963的博客 387

hdu 5465(二维树状数组)

二维bit + 尼姆博奕 #include #include #include #define Max 510 using namespace std; int n, m; int a[Max][Max]; int c[Max][Max]; int lowbit(int x) { return x & (-x); } int sum(int x, int y) { i

Naruto_____的专栏 467

Mac本地部署OpenClaw:从零搭建企业级知识库AI助手

大语言模型(LLM)作为当前人工智能的核心技术,通过其强大的自然语言理解和生成能力,正在深刻改变信息交互方式。其原理是基于海量数据训练的深度神经网络,能够根据上下文预测并生成连贯文本。这一技术的核心价值在于,它能够作为智能中枢,理解和执行复杂指令,从而将通用AI能力转化为解决特定业务问题的生产力。在工程实践中,通过AI Agent框架(如OpenClaw)将LLM与外部工具和知识系统连接,是实现其价值的关键。这涉及到**本地部署**与**私有化**部署,以确保数据安全与成本可控。具体应用场景包括企业知识库问

weixin_33402252的博客 378

[特殊字符] 智能补货(AI-driven Replenishment)完整实施方案

补货量=预测需求+安全库存−当前库存补货量 = 预测需求 + 安全库存 - 当前库存补货量=预测需求+安全库存−当前库存。:基于 LSTM/Transformer 预测未来 30/60/90 天的销量。

nbsaas-boot基于Request-Response的企业级快速开发框架 967

hdu5465

这道题明显是博弈+二维线段树,但是不知道怎么写出了时间排名倒几的程序。 已ac的代码: #include #include #include using namespace std; #define N 510 #pragma comment(linker, "/STACK:1024000000,1024000000") int ornum[N*N*10]; int allx1,ally1,

hahaha 364

华为OD机试 - 开源项目热度榜单(Java 2025 C卷 100分)

H = Wwatch X#watch + Wstar X#star +Wfork X#fork +Wissue X#issue +Wmr X#mr H表示热度值,Wwatch、Wstar、Wfork、Wissue、Wmr分别表示5个统计维度的权重,#watch、#star、#fork、#issue、#mr分别表示5个统计维度的统计值。

学Java,找哪吒 1756

HDU 5465 Clarke and puzzle (二维树状数组水题+基础博弈)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5465 #include&lt;bits/stdc++.h&gt; using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)&lt;(z);(x)++) #define read(x...

满月照亮的路 267

RK3588 buildroot 制作的系统增加 docker 支持

RK3588 使用buildroot制作的系统添加 docker 和 docker-compose 的功能

荻夜的博客 1567

用 i18n 驯服标准文案:SAP Fiori elements 的 UI 文本本地化与可替换实践全景

本文系统介绍了SAP Fiori elements应用中UI文本本地化的全面解决方案。从框架层与应用层文本的分类原则出发,详细解析了标准文本替换的四步法:资源准备、键值定位、模型配置和验证部署。文章特别针对不同开发场景,提供了XML、ABAP CDS和CAP CDS三种注解方式的文本覆盖写法示例。同时深入探讨了语言回退机制、表格组件标准键覆盖等关键技术细节,并指出了实际项目中的常见问题与解决方案。通过结合官方文档和社区实践,为开发人员在不破坏框架约定的前提下,实现稳定可靠的UI文本本地化提供了完整指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 297

hdu 5465 Clarke and puzzle

题意: 中文题http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=631&pid=1002 解: Nim博弈,不过是2维的,并且有更新操作。这里可以用二位树状数组维护。跟POJ1195很像。 #include <iostream> #include <algorithm&g...

weixin_30408675的博客 125

基于YOLO26/11/v8算法的Web目标检测系统,人脸表情识别系统,Django+Vue3 的前后端分离,实现摄像头实时识别,YOLO26/YOLO11/v8 + LLM大模型智能分析,科研必备

在人工智能迈向通用化(AGI)的今天,“视觉感知 + 语言理解”的多模态联合是未来的趋势。单纯的检测画框已经无法满足复杂的业务需求,如何让系统“看懂”画面并进行“思考”,是当前视觉项目的重点。我们知道目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。因此本项目将 YOLO 目标检测模型(兼容 YOLO26/v11/v8 系列)与 DeepSeek 等顶流大语言模型(LLM) 进行联合,使用 Django (后端) + Vue3 (前端) 技术栈

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2840

HDU 5465——Clarke and puzzle——————【树状数组BIT维护前缀和+Nim博弈】

Clarke and puzzle Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 673Accepted Submission(s): 223 Problem Description Clarke is a patient ...

weixin_30237281的博客 161

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU - 3743 Frosh Week(树状数组+离散化)

题意: 给你一个长度为n的序列(最长100万),每次只能交换相邻的两个数字,问最小交换多少次,能使得序列有序。 解析: 这道题的数据量很大,所以要找规律,最小的排序次数,就是这个序列的逆序数的个数,那么可以用树状数组求解。 注意: 这题没说所有的序列是从1~n的所以要将所有的数字进行离散化。然后再求解。 AC代码#include <cstdio> #include <cstring> #

小G的ACM之路 844

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SUG 180 Inversions(树状数组+离散化)

题意: 求逆序数的个数,因为题目没说是从1~n,所以要离散化。 心得: 这题wa了好多次,是因为询问时 query(order[i]-1) 写错成 query(order[i])。 AC代码#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <cstdlib> using na

小G的ACM之路 824

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU - 1394 Minimum Inversion Number(树状数组 or 线段树)

题意: 给n个数字(0到n-1无重复),可以拿前面任意m个放到末尾。求拿多少个数字放到末尾后数列的逆序数最小。 解析: 逆序列个数是n个,如果把a[1]放到a[n]后面,逆序列个数会减少a[1]个,相应会增加n-(a[1]+1)个 比如说: 序列 3 6 9 0 8 5 7 4 2 1 把3移到后面,则它的逆序数会减少3个(0 2 1) 但同时会增加 n - a[i] - 1

小G的ACM之路 747

ZOJ 3724 Delivery(树状数组+离线处理)

题意:N个点,对于每个点i,都有一条连向i+1的有向边,另外有M条其他的有向边(姑且称作小道边),有Q个询问(u,v)(u,v)求uu到vv的最短路。解析:这题真的是思考了好久,也参考了很多大牛的博客,终于把这题给过了。 这题让我理解到了,原来树状数组也可以维护最大值和最小值,真的是长见识了。以下解析,可能是这题网络上最详细的讲解了。刚一看感觉是最短路的题,但是再一想,有 n−1n-1 条有向边,

小G的ACM之路 682

HDU 4455 Substrings(dp+树状数组优化)

题意:给定一个序列ai,个数为n。再给出一系列w; 对于每个w,求序列中,所有长度为w的连续子串中的权值和,子串权值为子串中不同数的个数解析:一直想不出来怎么转移,看了网络上面的题解才明白怎么做。 dp[i]dp[i]表示w=iw=i时所求的答案。 dp[1]=ndp[1]=n,这个很容易知道,dp[2]dp[2]中的子串就是删去dp[1]dp[1]中最后一个子串, 再令每个子串加上 其之后

小G的ACM之路 668

POJ - 2481 Cows(线段树单点更新)

题意: 两个区间:[Si, Ei] 和 [Sj, Ej] (0 <= S < E <= 10^5) 若 Si <= Sj,且 Ej <= Ei 且 Ei - Si > Ej - Sj, 则第i个区间覆盖第j个区间,即牛i比牛j强壮。问对于每一头牛i有多少头牛比它强壮。 解析: 这题先一看,不知如何下手。首先,将每个区间的S和E当做是(S,E)一个点,这样子把所有点在坐标系上画出来,你就

小G的ACM之路 613
上一篇: hihocoder 1233 Boxes(bfs+状态压缩+hash表)
下一篇: hdu 5452 Minimum Cut(树链剖分+差分前缀和)
HelloWorld10086
博客等级 码龄12年 88粉丝 614原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值