「PR #14」安顿

考虑要求划分数量最多,假如所有数都不等于 \(X\) 那么一个一个划显然最好,有 \(X\) 的话 \(X\) 所在段必须有至少两个元素,再继续讨论。当 \(X=0\) 时,显然将其划分到旁边的一个段内,所以其答案就是非 \(0\) 的元素数量。但是我们还没有清楚为什么要把这种情况单独拿出来。这种做法不能解决 \(X≠0\) 的原因在于,两个 \(X\) 可以变成合法的,并且 \(X\) 和一个非 \(X\) 元素分在一组仍异或结果仍可能是 \(X\)。但是这种情况下我们似乎是考虑贪心,直接对于只包含 \(X\)\(0\) 的极长连续段来看,它们如果要接到段外面,必然只和靠边那一个元素分在一组即可,而这些都与 \(X\) 的具体值无关。由此我们可以断言,\(X≠0\) 的情况答案都是一样的!

那就考察 \(X=1\)。或许你会问,为什么偏偏是这一个?从刚才的做法来看,这与 \(X\) 是多少确乎无关?但是我们可以对此考虑另外一个做法。我们考虑长度为 \(n+1\) 的前缀异或序列(这显然也是等概率的),那么显然问题是选出其中若干个数,相邻两个的异或不为 \(1\),并且首和尾必选。把每个数写成 \(2A+B\) 的形式,其中 \(0\le B \le 1\),那么我们只需要考虑 \(A\) 相同的连续段就可以了。每个连续段内肯定选 \(B\) 的两种值出现次数更多那个就行了。

这样就可以考虑计数了。我们考虑枚举连续段长度 \(L\),枚举这个连续段的 \(A\),那么只需要分情况讨论(为了方便计数,钦定第一个数可以任意而不是 \(0\),不难发现这样期望是不变的):

  • 它是中间段。钦定旁边两个数的 \(A\) 与其不同,段外的其它数随便选。再枚举段内 \(B=0\) 的个数 \(i\),则还没确定的数产生的总贡献就是 \(\sum\limits_{i=0}^L \max\{i,L-i\}\dbinom{L}{i}\),这个式子拆成两半,最后是可以 \(\mathcal O(1)\) 算的。

  • 它是边缘段。钦定的东西还是差不多。只不过要钦定位于序列末端/尾端的必须选。还是列式子,化简。

  • 它是整个序列。因为这个涉及到判断有无解的问题。容易发现,当序列首尾异或为 \(1\) 并且整个序列位于一个段时无解。否则钦定首尾必选,其他还是差不多。

以上三部分都是可以 \(\mathcal O(1)\) 算的,所以最终复杂度是 \(\mathcal O(n)\) 的,至此本题就做完了。可以发现上面这个东西在 \(X>1\) 时也可以尝试,只不过 \(B\) 的值域更大,判定条件更加答辩。这就是本题的妙处:通过一种贪心(或者是感性理解)得到 \(X≠0\) 的情况答案相等的结论,又通过一个截然不同,并且看似不满足看出(或者说看不出满足)上面的结论的一个贪心,完成 \(X=1\) 的计数,来通过此题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872675.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【译】调查并确定 Windows 运行速度变慢问题

我最近注意到,我的 Windows 7 家用笔记本电脑运行速度比平时要慢。系统似乎在磁盘 I/O 上花了很多时间。当我查看任务管理器时,我发现笔记本电脑的缓存磁盘数据量大约只有平时的 五分之一,但问题的原因并不明显。 我的工作之一是性能专家——要调查各种日常或深层次的性能问…

SQLServer2005恢复Master库.110509

master库对于SQLServer来说,是很重要的系统数据库,保存着所有Sqlserver的用户信息、数据库信息等,当数据库崩溃时,master数据库的恢复成功与否起着重要的作用。这就跟Oracle的System表空间一样,非常的重要。 备份数据前期准备: (1)在备用机准备好和生产机器一样的sql20…

legged-robot关于locomotion、Navigation任务主要文章速览

0. 前言 目前legged robot包括locomotion(怎么走)、navigation(往哪走)、人形机器人的whole body control以及基于机械臂的manipulation的任务。 本文章特此记录 一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。 如有不对之处,欢迎评论区指出错误,你我共…

IT部门管理之IT十二条令.180409

团队越来越大,靠人管几乎有力无心,只能靠制度管理了。 前段时间对部门颁布了12条令,效果明显。 特此Mark。汇报:三条总结:汇报讲究精简,一个事情最多一句话概括。 一页报告:内容精简,报告一页word搞定。 统计分析:尽量用报表或图表说话。用数字说话,比用语言表达更加…

IDEA如何查看类中的方法和属性列表

前言 大家好,我是小徐啊。我们在开发Java应用的时候,一般都是需要写属性和方法的。这些属性和方法构成了我们代码开发的基础。当一个Java类中,有很多属性和方法的时候,如何快速找到这些方法和属性呢?今天,小徐就来介绍下如何在IDEA中查找。 如何查找属性和方法 首先,打开…

MySql 执行计划

目录获取执行计划解读执行计划type 字段Extra 字段访问谓词与过滤谓词完整字段信息格式化参数执行计划中的分区表信息获取额外的执行计划信息获取指定连接的执行计划获取实际运行的执行计划执行计划(execution plan,也叫查询计划或者解释计划)是 MySQL 服务器执行 SQL 语句的…

用css实现倒影的效果

在前端开发中,使用 CSS 来实现倒影效果是一个常见的技巧。这通常可以通过使用 CSS3 的 box-reflect 属性或者通过伪元素和线性渐变来实现。然而,需要注意的是,box-reflect 是一个非标准的 WebKit 属性,主要在 Chrome 和 Safari 中支持,而在 Firefox 和 IE 中不支持。 方法…

Mac电脑如何卸载软件?App Cleaner

Mac电脑如何卸载软件?App Cleaner 垃圾清理 App Cleaner & Uninstaller Pro Mac,是一款Mac卸载工具,残余垃圾清除工具!可以卸载应用程序或只删除不需要的服务文件,甚至可以删除以前删除的应用程序中的文件。使用该应用程序,您可以管理Mac扩展程序并使用一个按钮禁用所…

20 GitHub 仓库帮助你成为 React专家

原文:https://dev.to/martinadamsdev/20-github-repositories-to-become-a-react-master-opl#how-to-become-a-react-master-1推荐的 GitHub 仓库列表:reactjs/reactjs.org:官方 React 文档,提供了详细的学习指南和示例代码。facebook/react:React 的官方仓库,包含了核心…

WebStorm 2024.3.1 前端开发工具

WebStorm 2024.3.1 前端开发工具 JetBrains WebStorm 2024 mac,是一款JavaScript开发工具,WebStorm 非常了解您的项目结构,可以在编码的各个方面提供帮助。它将自动补全代码,检测错误和冗余并提出修正建议,帮助您安全地重构代码。

MySQL数据库开启远程访问权限

1、背景描述 默认情况下,MySQL 只允许本地登录,即只能在安装 MySQL 数据库所在的主机环境中访问。 在实际开发和使用中,一般需要访问远程服务器的数据库,此时就需要开启服务器端 MySQL 的远程访问权限。 2、查看MySQL的用户表如上图所示,Host 列指定了允许用户登录所使用的…