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

题解:P14937 「FAOI-R10」XOR Problem

原题链接

解析

看到要求按位与的最大值,想到拆位。从高位往低位考虑,因为低位的 \(1\) 再多也比不上一个高位的 \(1\)

从简单情形开始考虑,不妨只考虑一位,也就是令 \(a_i\) 的取值范围为 \(\{0,1\}\),此时我们希望分成的 \(m\) 段每段的异或和都为 \(1\),这等价于每段中有奇数个 \(1\)。于是可以发现最终按位与的结果可以为 \(1\) 当且仅当序列中 \(1\) 的个数的奇偶性与 \(m\) 的奇偶性相同且 \(1\) 的个数大于等于 \(m\)

也就是说,我们主要关心每一段 \(1\) 的个数的奇偶性,每一段内 \(1\) 的个数并不重要,总个数够用就行,保证了前面分割出来的段的奇偶性,就能保证最后一段的奇偶性。

值域扩展后可以提出一个做法:设已经选取了的位的集合为 \(S\)。从高往低位考虑,只考虑这一位上 \(1\) 的个数的奇偶性与 \(m\) 相同的位。然后遍历序列尝试分段,维护当前每一位上 \(1\) 的出现次数的奇偶性,每当当前段中 \(S\) 中所有的位的 \(1\) 的个数都为奇数就分一段,最后如果能分不少于 \(m\) 段就将这一位加入 \(S\)\(S\) 中每一位组合成的数即为所求。

时间复杂度 \(O(n \log V)\)

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int N = 3e5 + 5,M = 2e5 + 5,base1 = 131,base2 = 13331,mod = 998244353,mod2 = 1e9 + 7;
int a[N],cnt[30];
int main(){ios::sync_with_stdio(false);cin.tie(0);int T;cin>>T;while(T--){memset(cnt,0,sizeof(cnt));int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];for(int j=0;j<=29;j++){cnt[j] += bool(a[i] & (1 << j));}}int res = 0;for(int i=29;i>=0;i--)if((cnt[i] & 1) == (m & 1)){int nres = res | (1 << i),t = 1,x = 0;for(int j=1;j <= n && t < m;j++){x ^= a[j];if((x & nres) == nres){t++;x = 0;}}if(t >= m){res = nres;}}cout<<res<<'\n';}return 0;
}
http://www.jsqmd.com/news/183577/

相关文章:

  • 安装Java的安装开发环境
  • PyCharm激活码永久免费?小心陷阱,推荐合法开发环境
  • 深度学习计算机毕设之基于OpenCV的车流量统计和车速检测
  • 【毕业设计】基于土壤数据与机器学习算法的农作物推荐算法代码实现
  • 企业微信集成Sonic审批流程自动化提醒
  • GitHub镜像缺少文档?我们配套详细使用说明
  • 详细介绍:Linux系统之realpath 命令详解
  • 京东e卡回收暗藏陷阱,你中招了吗? - 京顺回收
  • Sonic数字人VR头显适配研究:沉浸式交互新可能
  • 【课程设计/毕业设计】基于OpenCV的车流量统计和车速检测车流检测和车速估计
  • 清华镜像限速?我们不限制下载带宽
  • 【内网运维】Netstat与Wireshark:内网运维溯源实战解析
  • 170_尚硅谷_二维数组遍历方式
  • Sonic数字人项目文档推荐使用Typora官网版本编辑
  • VoxCPM-1.5-TTS-WEB-UI能否用于商业广播内容制作?
  • C++链表题
  • AWMS SQL query
  • 【毕业设计】基于机器学习 OpenCV的车流量统计和车速检测
  • 使用 PowerShell 脚本来删除空白行 - 实践
  • 市场监管局查处一起Sonic虚假宣传行政处罚案件
  • 高校教师用Sonic制作AI助教视频,学生反馈满意度提升40%
  • 真正等人类意识都变成物理学了,其他共识都丢失了,那时候阴间就成物理学了,那样更没意思了是吧对于一个人来讲?
  • 专利布局思考:围绕Sonic核心技术申请知识产权
  • Sonic数字人生成视频添加水印的方法与工具推荐
  • 计算机毕设java高校人事管理系统 基于Java的高校教职工信息管理系统设计与实现 Java技术驱动的高校人事信息化管理平台开发
  • 实测 openEuler 生态适配与应用部署:多架构 + 云原生 + 数据库全场景落地指南 - 实践
  • Kyverno策略引擎强制校验Sonic Pod安全上下文
  • Sonic数字人与Blender动画软件集成路径探讨
  • 教育部推广Sonic在‘三个课堂’中的教学应用
  • VoxCPM-1.5-TTS-WEB-UI能否用于智能导航语音播报?