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

20260423 紫题训练

P4587 [FJOI2016] 神秘数

赛时想的做法(不知道能否通过):

考虑给出集合怎么求它的神秘数。

将所有元素排序,模拟从小往大求子集的和的过程。

设排序完后为 \(a_1,a_2,\dots,a_n\)

设当前考虑完前 \(k\) 个,\(\sum_{i=1}^k a_i=S\),并且 \([0,S]\) 都能取到(不然已经不合法在前面会被判掉)。

\(a_{k+1}\le S+1\),则 \(S+t-a_{k+1}\in [0,S](t=1\sim a_{k+1})\),也就是说一定可以在前面找出子集使得和为 \(S+t-a_{k+1}\),再加入 \(a_{k+1}\) 使得 \([0,S+a_{k+1}]\) 都能取到,将 \(k\gets k+1\) 继续判断。

否则 \(S+1\) 一定取不到,结果为 \(S+1\)


考虑莫队,对于一个集合 \(a\),和 \(k\) 满足 \(a_{k+1}>S=\sum_{i=1}^k a_i+1\),加入了一个值 \(x\)

1.若 \(x\ge a_{k+1}\) 显然对答案没有影响,放置在后面。

2.若 \(x\le a_k\),则 \(x\) 可以被选中,让 \(S\gets S+x\) 再往后判断。

3.若 \(a_k<x<a_{k+1}\),判断是否有 \(x\le S\),若满足则将 \(S\gets S+x\),并继续考虑 \(k+1\),否则将 \(x\) 放在 \(k+1\) 前面。

分析一下时间复杂度,1 操作可以用优先队列 \(\mathcal O(\log n)\) 维护,2,3 的均摊时间复杂度是操作次数 \(\times\mathcal O(\log n)\),加上回滚莫队总时间复杂度为 \(\mathcal O(n\sqrt{m}\log n)\)


实际上求神秘数的结论是正确的,但没有必要用这种方式维护。

事实上,若求神秘数时当前和为 \(S\),相当于一次可以取所有值在 \([1,S]\) 的元素,\(S\gets \sum_{i=l}^r a_i[a_i\in[1,S]]+1\)

对于 \(\sum_{i=l}^r a_i[a_i\in[1,S]]\) 可以用主席树 \(\mathcal O(\log n)\) 维护,而对于 \(S\) 的变化每次暴力进行上面的操作,操作次数是 \(\mathcal O(\log n)\)

http://www.jsqmd.com/news/688878/

相关文章:

  • ComfyUI-Manager:彻底改变AI绘画插件管理体验的智能解决方案
  • 别再傻等Importing了!保姆级教程:用Docker快速部署Unity CacheServer(含Windows/Linux配置)
  • 5步快速上手《缺氧》存档编辑器:Duplicity终极指南
  • 球类运动自动跟拍怎么实现?AI尚运动相机实测揭秘
  • Windows右键菜单清理神器:ContextMenuManager让你的右键菜单焕然一新
  • 别再只用to_string()了!盘点Pandas中DataFrame与字符串互转的5种方法及适用场景
  • Mac Mouse Fix终极指南:5分钟让你的普通鼠标超越苹果触控板
  • 【信创开发环境黄金标准】:2026年工信部推荐VSCode配置模板——已通过中国电科、航天信息、中航信三大央企红蓝队渗透测试
  • 深度测评Alpha AI:大模型加持下,这款AI量化引擎表现如何?
  • AM32开源代码中的delay函数详解:STMICRO/GIGADEVICES/ARTERY三种计时器实现对比
  • 【收藏级】2026年AI与金融大模型深度解析:两条技术路径对比+落地指南(小白程序员入门必看)
  • 面试官最爱问的字符串算法:最长回文子串的两种解法(中心扩展 vs Manacher)
  • LVGL内存优化实战:当你的嵌入式Linux板子报‘段错误’时该怎么办?
  • 社交产品测试
  • 实战指南:在Voxel R-CNN与CenterPoint中集成Focals Conv模块提升3D检测性能
  • 三步搞定抖音下载:免费无水印批量下载终极指南
  • Python语法(全)
  • 数字人视频生成利器:Sonic工作流功能体验与效果测评
  • 用STM32F407+USB做个电脑外置声卡?手把手教你实现音频播放和录音(基于CubeMX和正点原子探索者)
  • Rust 零拷贝机制在高性能系统中的应用
  • 告别AT指令!用Arduino IDE和ESP8266库,5分钟搞定OneNET数据上传
  • kill-doc:智能文档下载工具的完整使用指南
  • Synopsys VC USB VIP 实战:手把手教你理解三层架构与 Layering Sequence 数据流
  • 避坑指南:模拟IC新手用TSPC设计分频器时,最容易忽略的5个仿真细节和版图后仿陷阱
  • 超详细!【网络安全】基础知识详解,零基础入门到精通,永久收藏
  • Virtuoso Layout Editor 效率翻倍秘籍:从新手到高手必知的20个隐藏快捷键
  • BBDown终极指南:免费高效的哔哩哔哩视频下载工具
  • 恒指 / 纳指期货实时行情授权软件技术架构、合规与选型全解析
  • OA、CRM、ERP之间的区别和联系是什么?
  • 2024年了,为什么我还在劝后端/嵌入式开发者学一点汇编?(含ARM/x86实例)