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

[SNOI2017] 遗失的答案

[SNOI2017] 遗失的答案 - 洛谷P5366

给定 \(n, g, l\) 以及 \(T\) 组询问,每组询问给定 \(x\),问有多少个集合非空 \(S\) 包含 \(x\)\(S \subseteq \{1, 2 \dots n \}\)\(S\) 内元素的最大公约数为 \(g\),最小公倍数为 \(l\)

\(1 \le n, g, l, x \le 10^8, T \le 10^5\)

标签 质因数分解,状压 DP,分治

先判掉一些极端情况,\(g \nmid l, x \nmid l, g \nmid x\),这些情况答案都是 \(0\)

考虑把包含 \(x\) 这个条件去掉(简化问题),有多少个 \(S\)

其实 \(g\) 没什么用,将 \(n, l, x\) 都除以 \(g\) 即可,并且 \(S\) 内的元素必须是 \(l\) 的因数(最多 \(800\),设为 \(d\) 个)。然后考虑将 \(l\) 质因数分解:\(l = p_1^{k_1}p_2^{k_2} \cdots p_m^{k_m}\)。只需要对于每个 \(1 \le i \le m\)\(S\) 内的元素有至少一个 \(p_i\) 的指数为 \(k_i\),有至少一个为 \(0\) 即可。

因为 \(l\) 最多只有 \(8\) 个质因子(\(2 \times 3 \times 5 \times \cdots \times 23 = 223092870 > 10^8\)),可以考虑状压。设 \(l\)\(c\) 个质因子,每个数对应一个 \(4^c\) 的状态,表示对于 \(p_i\) 的指数是否为 \(k_i/0\)。然后进行一个 \(4^cd\) 的状压 DP 即可。


接下来考虑不包括 \(x\) 这个条件。一个十分粗暴的方式是对于前后缀各做一次,然后进行合并,时间复杂度 \(O(6^cd)\),不知道能否通过。

这里介绍一种不需要高级算法的做法:分治诶,被分治创飞的战绩又添一笔

先考虑容斥,用总方案减去不包含 \(x\) 的方案。分治到左边的时候,把右边的数加进来;分治到右边的时候,把左边的数加进来。这样递归到叶子的时候,就把所有不是 \(x\) 的都加进来了。

时间复杂度:\(O(4^cd \log d)\)。被 FWT 之类的神秘做法杀爆了。

因为 \(c, d\) 很难同时取满,而且有状态跑不到(对于一个数 \(p_i\) 的指数不可能同时等于 \(k_i, 0\)),跑的还是挺快的。

总结以下,这个题从简单问题入手,先去掉一个条件,搞出一个状压的做法。加入那个棘手条件后使用容斥 + 分治的做法快速进行计算,减少不必要的合并。

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

相关文章:

  • Switch文件传输终极指南:10分钟从零到精通
  • ncmdump音乐解密工具:轻松解锁网易云音乐NCM加密文件
  • 【企业级AI解决方案】AI大模型API平台实测公开对比榜单前9:最佳选择与避坑攻略 - poloapi-ai大模型
  • ViGEmBus虚拟游戏控制器驱动完整解析与实战应用指南
  • 猫抓浏览器扩展:轻松捕获网页视频资源的终极解决方案
  • 百度网盘提取码智能查询工具完整使用手册
  • Dell G15终极散热解决方案:5分钟掌握开源散热控制中心
  • 一个鸿蒙开发者视角下的车联网实践:我如何用 HarmonyOS 做车机应用
  • 碧蓝航线自动化脚本:5分钟实现全自动挂机游戏体验
  • Switch控制器如何在PC上完美使用?BetterJoy工具全解析
  • 如何快速上手Scarab:空洞骑士模组管理终极指南
  • 英雄联盟终极个性化定制指南:快速打造专属游戏形象
  • XNB文件编辑全攻略:解锁星露谷物语资源定制新境界
  • Spark动态优化机制:AQE与DPP
  • 手机号码归属地查询终极指南:快速定位地理位置的开源解决方案
  • 如何快速掌握BetterJoy:让Switch手柄在PC上完美运行的完整指南
  • 闲鱼自动化终极指南:3步搭建智能运营系统
  • Universal-x86-Tuning-Utility终极指南:快速掌握x86设备性能调优
  • DownKyi视频下载神器:从零基础到高效管理的终极指南
  • Downkyi哔哩下载神器:新手必备的8大实用技巧
  • LeaguePrank终极指南:5分钟掌握英雄联盟客户端个性化技巧
  • 视频下载工具终极指南:5大场景解锁批量管理新境界
  • League Akari英雄联盟智能助手:5大核心功能深度评测与实战指南
  • Unity自动翻译黑科技:XUnity.AutoTranslator闪电部署与实战指南
  • 百度网盘解析工具:3步获取高速下载地址,告别限速困扰
  • 碧蓝航线自动化脚本实战指南:从零基础到精通配置
  • 终极星露谷物语XNB文件编辑指南:从入门到精通
  • 终极指南:如何通过手机号码实现精准地理位置追踪
  • 揭秘DownKyi:3分钟掌握B站8K视频下载与智能管理技巧
  • 英雄联盟智能游戏管家:懒人玩家的专属神器