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

P9533 [YsOI2023] 区间翻转区间异或和 解题报告

题目传送门

解题思路

这道题我赛时没有考虑灵异区间的翻转,只求了灵异区间的个数,目的是骗一点分,但是就非常“灵异”的 AC 了。

于是在赛后证明了这个“灵异的结论”——灵异区间的翻转对灵异区间的个数没有影响。

证明过程(反证法)

\([l,r]\) 是灵异区间,现在要对其进行翻转。

若翻转后得到了新的灵异区间(灵异区间数目增加了),那么这个新的灵异区间一定与进行翻转的灵异区间有交集但不完全被翻转的区间包含。

  • 若新的灵异区间与原区间没有交集则灵异区间翻转对其没有影响,不可能形成新的灵异区间
  • 若新的灵异区间被包含则其翻转前对应的区间也一定是灵异区间(异或的交换律)。

\(sum_{[a,b]}\) 为区间 \([a,b]\) 的异或和。

设新灵异区间为图中的 \([u,v]\)(图中只给出了灵异区间在原区间右侧的情况)。

将三个区间标号,由 \(sum_{[u,v]}=0\) 可得 \(sum_B=sum_C\),又由 \(sum_{[l,r]}=0\)\(sum_A=sum_B\),则 \(sum_A=sum_C\)

现在将翻转前的区间画出来:

由于 \(sum_A=sum_C\),则翻转前 \(sum_{[u,v]}=0\),翻转前的 \([u,v]\) 即为灵异区间,不符合 \([u,v]\) 为新形成的灵异区间的假设,则翻转前后灵异区间的数量没有变化。

前缀和求灵异区间个数

用前缀和求灵异区间个数再简单不过了。

\(s_i\) 为前 \(i\) 项的前缀异或和,若 \([l,r]\) 为灵异区间,则 \(s_r\oplus s_{l-1}=0\),即 \(s_r=s_{l-1}\),反之结论亦成立。

在求前缀异或和的时候用数组 \(vis_i\) 代表 \(i\) 这个数在前面的前缀异或和中出现的次数,则每出现一个 \(s_i\) 时对答案的贡献为此时的 \(vis_{s_i}\)\(i\) 可以与之前每一个出现 \(s_i\) 的下标的后面那个数形成一个灵异区间)。

此外还应注意 \(vis_0=1\),因为 \(s_0=0\)

AC Code

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,ans,s,a,vis[1<<21];//a[i]和s[i]都是一次性用品,可以不记 
signed main()
{scanf("%lld",&n),vis[0]=1;for(int i=1;i<=n;i++)scanf("%lld",&a),s^=a,ans+=vis[s],vis[s]++;//此时的s为s[i] cout<<ans;return 0;
}
http://www.jsqmd.com/news/88400/

相关文章:

  • wangEditor处理站群平台word文档转存需求
  • C#之文件读取
  • 联想打印机维修与故障排除实用指南
  • P9345 夕阳西下几时回 解题报告
  • 专网自实现域名系统的深度可行性研究与实施规划报告
  • 本地部署开源可视化界面开发工具 Node-RED 并实现外部访问( Linux 版本)
  • 实习面试题-ZooKeeper 原理面试题
  • T321484 刁钻的客人 私题题解
  • CF1891B Deja Vu 解题报告
  • 本地部署开源可视化界面开发工具 Node-RED 并实现外部访问( Windows 版本)
  • U249090 密码门 私题题解
  • 2025企业AI部署革命:T-pro-it-2.0-GGUF如何让本地化门槛直降60%?
  • JSP如何实现大文件分片上传与多线程上传?
  • 三相共直流母线式光储VSG/虚拟同步机逆变器模型仿真:离散化快速运行与前级PV最大功率追踪控制
  • Sed 例程大全
  • 【Vue3】 中 ref 与 reactive:状态与模型的深入理解
  • 实习面试题-Zookeeper 面试题
  • 双机并联虚拟同步发电机仿真模型:均分负载与优质波形输出,可拓展自适应与光伏储能技术
  • 清除企业不良记录的通知
  • Grep 例程大全
  • python环境及pip的操作
  • 管理Linux的联网
  • HTTP协议在JSP大附件上传中如何优化性能?
  • 网页前端如何通过JSP实现大文件秒传功能?
  • Ursa.Avalonia样式系统终极指南:5大技巧助你构建企业级UI
  • Asio应用(高级):构建高性能、安全、跨平台的网络系统
  • 实习面试题-Spark SQL 面试题
  • CF958A1 Death Stars (easy) 解题报告
  • PS 例程大全
  • wangEditor导入excel数据到html富文本编辑