当前位置: 首页 > news >正文

题解:CF1968F(Equal XOR Segments)

题解:CF1968F(Equal XOR Segments)

题目翻译:定义一个序列是好,当且仅当可以将其分成大于 1 1 1 份,使得每个部分的异或和相等。现在给定一个长度为 n n n 的序列 a a a,以及 q q q 次查询,每次查询中,询问序列 a a a 的第 l l l r r r 位是不是好的。( n ≤ 2 ⋅ 1 0 5 n\leq2\cdot10^5 n2105 并且 q ≤ 2 ⋅ 1 0 5 q\leq2\cdot10^5 q2105
第一步,要缩小范围。我们不难发现这个段数要么是 2 2 2,要么是 3 3 3,如果有多于 4 4 4 段,那么将其中任意三段合并,根据异或的性质可以证明对最终结果没有影响,这样一直合并,一直将段数减少 2 2 2,早晚能变成 2 2 2 3 3 3 段。

第二步,考虑如何求答案。如果询问道一段区间异或起来(用前缀异或和 s s s 维护)为 0 0 0,那么一定可以分成两段;否则也就是难点——分成三段的情况。那么就相当于找到两个数 x x x y y y l < x < y < r l<x<y<r l<x<y<r)使得 s x ⨁ s l − 1 = s y ⨁ s x = s r ⨁ s y s_x\bigoplus s_{l-1}=s_y\bigoplus s_x=s_r\bigoplus s_y sxsl1=sysx=srsy。这个式子就等价于找到 s y = s l − 1 s_y=s_{l-1} sy=sl1 以及 s x = s r s_x=s_r sx=sr。那么我们用一个 map<int, vector<int>> 存储某一个数在 s s s 中出现在哪些位置,然后用 upper_boundlower_bound 二分求出能否找到合理的 x x x y y y 并且保证 x < y x<y x<y。比如说,我们在等于 s l − 1 s_{l-1} sl1vector 里面找到小于 r r r 最大的 y y y,在等于 s r s_r srvector 里面找到大于 l l l 里最小的 x x x,判断,如果 l < x < y < r l<x<y<r l<x<y<r 就可以,否则就不行。

具体见代码。

#include <bits/stdc++.h>
#define N 220000
using namespace std;
int t, n, q, a[N], l, r;
int s[N];
map<int, set<int>> id;
int main() {scanf("%d", &t);while (t--) {id.clear();scanf("%d%d", &n, &q);for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);s[i] = s[i - 1] ^ a[i];if (id.find(s[i]) == id.end()) {id[s[i]] = {i};} else {id[s[i]].insert(i);}}for (int i = 1; i <= q; i++) {scanf("%d%d", &l, &r);if ((s[r] ^ s[l - 1]) == 0) {printf("Yes\n");} else {auto u = id[s[l - 1]].upper_bound(r - 1);if (u == id[s[l - 1]].begin()) {printf("No\n");} else {u--;auto v = id[s[r]].lower_bound(l);if (v != id[s[r]].end() && l <= *v && *v < *u && *u < r) {printf("Yes\n");} else {printf("No\n");}}}}}return 0;
}

相关文章:

题解:CF1968F(Equal XOR Segments)

题解&#xff1a;CF1968F&#xff08;Equal XOR Segments&#xff09; 题目翻译&#xff1a;定义一个序列是好&#xff0c;当且仅当可以将其分成大于 1 1 1 份&#xff0c;使得每个部分的异或和相等。现在给定一个长度为 n n n 的序列 a a a&#xff0c;以及 q q q 次查询…...

Python操作MySQL实战

文章导读 本文用于巩固Pymysql操作MySQL与MySQL操作的知识点&#xff0c;实现一个简易的音乐播放器&#xff0c;拟实现的功能包括&#xff1a;用户登录&#xff0c;窗口显示&#xff0c;加载本地音乐&#xff0c;加入和删除播放列表&#xff0c;播放音乐。 点击此处获取参考源…...

【Linux系统】进程间通信

本篇博客整理了进程间通信的方式管道、 system V IPC的原理&#xff0c;结合大量的系统调用接口&#xff0c;和代码示例&#xff0c;旨在让读者透过进程间通信去体会操作系统的设计思想和管理手段。 目录 一、进程间通信 二、管道 1.匿名管道 1.1-通信原理 1.2-系统调用 …...

北大国际医院腹膜后纤维化课题组 多学科协作开辟治疗新径

腹膜后纤维化(Retroperitoneal Fibrosis,简称RPF)是一种罕见的自身免疫性疾病,其核心特征是纤维组织的异常增生与硬化。这种疾病主要影响肾脏下方的腹主动脉和髂动脉区域,增生的纤维组织会逐渐压迫周围的输尿管和下腔静脉,从而导致一系列并发症,包括主动脉瘤、肾功能衰竭等,甚至…...

面试数据库八股文十问十答第七期

面试数据库八股文十问十答第七期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;索引是越多越好吗&#xff…...

【C++题解】1133. 字符串的反码

问题&#xff1a;1133. 字符串的反码 类型&#xff1a;字符串 题目描述&#xff1a; 一个二进制数&#xff0c;将其每一位取反&#xff0c;称之为这个数的反码。下面我们定义一个字符的反码。 如果这是一个小写字符&#xff0c;则它和字符 a 的距离与它的反码和字符 z 的距离…...

【Python编程实战】基于Python语言实现学生信息管理系统

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…...

AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情

电视猫上面有《庆余年》分集剧情&#xff0c;如何批量爬取下来呢&#xff1f; 先找到每集的链接地址&#xff0c;都在这个class"epipage clear"的div标签里面的li标签下面的a标签里面&#xff1a; <a href"/drama/Yy0wHDA/episode">1</a> 这个…...

md5强弱碰撞

一&#xff0c;类型。 1.弱比较 php中的""和""在进行比较时&#xff0c;数字和字符串比较或者涉及到数字内容的字符串&#xff0c;则字符串会被转换为数值并且比较按照数值来进行。按照此理&#xff0c;我们可以上传md5编码后是0e的字符串&#xff0c;在…...

【Docker故障处理篇】运行容器报错“docker: failed to register layer...file exists.”解决方法

【Docker故障处理篇】运行容器报错“docker: failed to register layer...file exists.” 一、Docker环境介绍2.1 本次环境介绍2.2 本次实践介绍二、故障现象2.1 运行容器消失2.2 重新运行容器报错三、故障分析四、故障处理4.1 停止 Docker 服务:4.2 备份重要数据4.3 清理冲突…...

小红书-社区搜索部 (NLP、CV算法实习生) 一面面经

😄 整个流程按如下问题展开,用时60min左右面试官人挺好,前半部分问问题,后半部分coding一道题。 各位有什么问题可以直接评论区留言,24小时内必回信息,放心~ 文章目录 1、自我介绍2、介绍下项目:微信-多模态小视频分类2.1、看你用了cross-att来融合多模态信息,cross…...

解读makefile中的.PHONY

在 Makefile 中&#xff0c;.PHONY 是一个特殊的目标&#xff0c;用于声明伪目标&#xff08;phony target&#xff09;。伪目标是指并不代表实际构建结果的目标&#xff0c;而是用来触发特定动作或命令的标识。通常情况下&#xff0c;.PHONY 会被用来声明一组需要执行的动作&a…...

linux配置防火墙端口

配置防火墙&#xff0c;添加或删除端口&#xff0c;需要有root权限。 防火墙常用命令如下&#xff1a; 1.查看防火墙状态&#xff1a; systemctl status firewalld active(running)&#xff1a;开启状态&#xff0c;正在运行中 inactive(dead)&#xff1a;关闭状态&#xff…...

sklearn线性回归--岭回归

sklearn线性回归--岭回归 岭回归也是一种用于回归的线性模型&#xff0c;因此它的预测公式与普通最小二乘法相同。但在岭回归中&#xff0c;对系数&#xff08;w&#xff09;的选择不仅要在训练数据上得到好的预测结果&#xff0c;而且还要拟合附加约束&#xff0c;使系数尽量小…...

三十一、openlayers官网示例Draw Features解析——在地图上自定义绘制点、线、多边形、圆形并获取图形数据

官网demo地址&#xff1a; Draw Features 先初始化地图&#xff0c;准备一个空的矢量图层&#xff0c;用于显示绘制的图形。 initLayers() {const raster new TileLayer({source: new XYZ({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/…...

医疗科技:UWB模块为智能医疗设备带来的变革

随着医疗科技的不断发展和人们健康意识的提高&#xff0c;智能医疗设备的应用越来越广泛。超宽带&#xff08;UWB&#xff09;技术作为一种新兴的定位技术&#xff0c;正在引领着智能医疗设备的变革。UWB模块作为UWB技术的核心组成部分&#xff0c;在智能医疗设备中发挥着越来越…...

Java面试题大全(从基础到框架,中间件,持续更新~~~)

从Java基础到数据库&#xff0c;Spring&#xff0c;MyBatis&#xff0c;消息中间件&#xff0c;微服务解决全部Java面试过程中的问题。&#xff08;持续更新~~&#xff09; Java基础 2024最新Java面试题——java基础 MySQL基础 mysql基础知识——适合不太熟悉数据库知识的小…...

零知识证明在隐私保护和身份验证中的应用

PrimiHub一款由密码学专家团队打造的开源隐私计算平台&#xff0c;专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 隐私保护和身份验证是现代社会中的关键问题&#xff0c;尤其是在数字化时代。零知识证明&#xff08;Zero-Knowledge Proofs&…...

15.微信小程序之async-validator 基本使用

async-validator是一个基于 JavaScript 的表单验证库&#xff0c;支持异步验证规则和自定义验证规则 主流的 UI 组件库 Ant-design 和 Element中的表单验证都是基于 async-validator 使用 async-validator 可以方便地构建表单验证逻辑&#xff0c;使得错误提示信息更加友好和…...

元宇宙vr科普馆场景制作引领行业潮流

在这个数字化高速发展的时代&#xff0c;北京3D元宇宙场景在线制作以其独特的优势&#xff0c;成为了行业内的创新引领者。它能够快速完成空间设计&#xff0c;根据您的个性化需求&#xff0c;轻松设置布局、灯光、音效以及互动元素等&#xff0c;为您打造出一个更加真实、丰富…...

孩子总是注意力不集中,感统训练有没有必要做?

​绝大多数情况下没有必要。注意力不集中的根源很少是感觉统合失调&#xff0c;感统训练对此基本无效。只有当孩子经过专业评估&#xff0c;被明确诊断为感觉统合失调&#xff0c;且注意力问题确实由感觉处理混乱引起时&#xff0c;才值得考虑&#xff0c;但效果也有限。感统训…...

ARM核心板存储选型实战:从DDR到eMMC的避坑指南

1. 项目概述&#xff1a;一个被低估的硬件选型难题在嵌入式系统开发&#xff0c;尤其是基于ARM架构的工控和核心板设计中&#xff0c;存储选型常常被新手甚至一些有经验的工程师视为一个“小问题”。不就是选个Flash和RAM吗&#xff1f;很多人会这么想。然而&#xff0c;在我十…...

如何选择一款既能过查重又能过AI检测的降重软件?(知网、维普、万方、格子达等)经验分享

毕业季与投稿季&#xff0c;论文查重率飙升、AIGC 疑似率居高不下&#xff0c;是无数人的噩梦。2026 年&#xff0c;国内超 82% 高校已实施 “查重率 AIGC 率” 双控标准&#xff0c;知网、维普、万方、格子达等平台算法全面升级&#xff0c;传统同义词替换早已失效。想要高效…...

Awesome-Dify-Workflow:重新定义AI工作流编排的模块化解决方案

Awesome-Dify-Workflow&#xff1a;重新定义AI工作流编排的模块化解决方案 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程&#xff0c;自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Aweso…...

用C++模拟流感传播:从信息学奥赛题到理解传染病模型(附完整代码)

用C模拟流感传播&#xff1a;从信息学奥赛题到理解传染病模型&#xff08;附完整代码&#xff09; 流感传播模型一直是计算机模拟和算法竞赛中的经典问题。这道来自信息学奥赛的题目不仅考察了递推算法的应用&#xff0c;更让我们得以一窥传染病传播的基本原理。本文将带你从零…...

ZYNQ7020笔记:MIO、EMIO、GPIO的区别及应用

ZYNQ 7020 之所以强大&#xff0c;在于它把ARM Cortex-A9处理器系统&#xff08;PS&#xff09;和FPGA逻辑&#xff08;PL&#xff09;集成在一个芯片里。而连接PS与外部世界的&#xff0c;就是MIO、EMIO、GPIO。很多初学者分不清它们的区别&#xff0c;今天这篇文章就用最直白…...

告别Modelsim命令行!用Notepad++插件NppExec一键检查Verilog语法(附详细配置命令)

硬件工程师的效率革命&#xff1a;Notepad与Verilog语法检查的终极整合方案 在数字电路设计领域&#xff0c;Verilog作为主流硬件描述语言&#xff0c;其语法检查是每位工程师日常工作中不可或缺的环节。传统工作流程中&#xff0c;工程师们不得不在文本编辑器与EDA工具之间频繁…...

从STM32转战合泰HT32F52352:手把手教你用GPTM定时器搞定四路舵机PWM控制

从STM32到HT32F52352的平滑迁移&#xff1a;GPTM定时器实现四路舵机PWM控制实战 对于习惯了STM32生态的开发者而言&#xff0c;初次接触合泰HT32系列MCU时往往面临两个挑战&#xff1a;如何快速理解新芯片的架构设计&#xff0c;以及如何将已有的STM32开发经验有效迁移。HT32F…...

从游戏画面Bug到图形学原理:一次深度测试失败的排查与透视矫正插值的深度理解

从游戏画面Bug到图形学原理&#xff1a;深度测试失败的排查与透视矫正插值解析 深夜调试游戏引擎时&#xff0c;屏幕上的三角形边缘突然出现诡异的闪烁——这种被称为"深度冲突"的现象&#xff0c;往往让开发者陷入漫长的调试循环。本文将以一个实际开发中的深度测试…...

在Blender中创建逼真流体模拟:FLIP Fluids插件完全指南

在Blender中创建逼真流体模拟&#xff1a;FLIP Fluids插件完全指南 【免费下载链接】Blender-FLIP-Fluids The FLIP Fluids addon is a tool that helps you set up, run, and render high quality liquid fluid effects all within Blender, the free and open source 3D crea…...