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

一些做题记录(2025 2-3)

【MX-X9-T2】『GROI-R3』XOR

题目要求求区间异或和,先转化成前缀异或和。

\(0\)\(n\) 的异或和是有规律的。

\(F(n)=0\oplus1\oplus\cdots\oplus n\),则有:

\[F(n)=\begin{cases} n,&n\equiv 0\pmod4,\\ 1,&n\equiv 1\pmod4,\\ n+1,&n\equiv 2\pmod4,\\ 0,&n\equiv 3\pmod4. \end{cases} \]

题目要求 \(F(n)\oplus F(k-1)=x\),可转化为 \(F(n)=x\oplus F(k-1)\)。令 \(t=x\oplus F(k-1)\),也就是说我们要找到一个 \(n\in[l,r]\),使得 \(F(n)=t\)

下面我们分类讨论:

  • \(n\equiv 0\pmod4\) 时:\(F(n)=n \Rightarrow n=T(T\equiv 0\pmod4)\)
  • \(n\equiv 1\pmod4\) 时:\(F(n)=1 \Rightarrow T=1\)
  • \(n\equiv 2\pmod4\) 时:\(F(n)=n+1 \Rightarrow n=T-1(T\equiv 3\pmod4)\)
  • \(n\equiv 3\pmod4\) 时:\(F(n)=0 \Rightarrow T=0\)

因此:

  1. 如果 \(T=1\),则只要在区间内存在 \(n\equiv1\pmod4\) 的数即可。我们可以选区间内最小的 \(n\equiv1\pmod4\)
  2. 如果 \(T=0\),则必须选 \(n\equiv3\pmod4\),选区间内最小的 \(n\equiv3\pmod4\)
  3. 如果 \(T\not\in\{0,1\}\)
    • \(T\equiv0\pmod4\),则必须有 \(n=T\),检查 \(T\in[l,r]\)
    • \(T\equiv3\pmod4\),则必须有 \(n=T-1\),检查 \(T-1\in[l,r]\)
    • 其他情况无解。

参考代码

#include<iostream>
using namespace std;
int T,l,r,k,x;
int get(int x){if(x%4==0) return x;if(x%4==1) return 1;if(x%4==2) return x+1;if(x%4==3) return 0;
}
void solve(){cin>>l>>r>>k>>x;int a=get(k-1);int t=a^x;if(t==1){for(int i=l;i<=r;i++)if(i%4==1){cout<<i<<'\n';return;} cout<<-1<<'\n';return;}if(t==0){for(int i=l;i<=r;i++)if(i%4==3){cout<<i<<'\n';return;} cout<<-1<<'\n';return;}if(t%4==0&&t>=l&&t<=r){cout<<t<<'\n';return;}if(t%4==3&&t-1>=l&&t-1<=r){cout<<t-1<<'\n';return;}cout<<"-1\n";
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cin>>T;while(T--) solve();return 0;
}

AC 记录

http://www.gsyq.cn/news/16509.html

相关文章:

  • 实用指南:Linux 权限管理入门:从基础到实践
  • 无法定时发送
  • MongoDB财报超预期,文档数据库技术解析
  • 2020CSPS T1 儒略日题解
  • Python 语言编程技巧
  • kafka 常用知识点 - 指南
  • 英语_阅读_ChatGPT_待读
  • 详细介绍:Qwen2.5-VL 损失函数
  • visual studio
  • HttpServletResponse 对象用来做什么? - 详解
  • [LUCKY」在Windows下使用STUN穿透实现Minecraft联机并设置SRV记录
  • 详细介绍:如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)
  • Go 为何天生适合云原生? - 指南
  • ARC 207
  • 深入解析:C++:内存管理
  • [KaibaMath1001] 关于∀ε0,|a-b|ε = a=b的证明
  • 基于Web的分布式图集管理系统架构设计与实践 - 教程
  • 国庆 Day2 强基物理
  • unix/linux source 命令,其发展历程详细时间线、由来、历史背景 - 指南
  • AtCoder Regular Contest 207 (Div.1) 游记
  • 详细介绍:云原生时代 Kafka 深度实践:05性能调优与场景实战
  • 从零开始学Flink:数据输出的终极指南
  • 自然语言处理(NLP)的系统学习路径规划 - 实践
  • 【JNI】JNI基础语法
  • 从Chrome渲染器代码执行到内核:MSG_OOB漏洞分析与利用
  • US$78.85 KEYDIY KD ZB42-4 Universal Smart Remote Key 3+1 Buttons for Lexus Type 5pcs/lot
  • Python中小整数对象池、intern机制和大整数对象池
  • ctf逆向常见算法----base64
  • 02020409 EF Core基础09-一对一、多对多、EF Core基于关系的复杂查询
  • 02020503 EF Core高级03-分页查询、IQuerable底层的实现形式、DataReader、DataTable、EF Core中的异步方法