首页 > 其他分享 >分散层叠

分散层叠

时间:2023-12-19 09:23:48浏览次数:24  
标签:二分 原神 层叠 枚举 分散 序列

这是我们原神的实机图片。


主要参考2020年集训队论文《浅谈利用分散层叠算法对经典分块问题的优化》,如果看不懂可以去看这个(然后你发现竟然完全相同,真是原原又神神啊)

看到很多次了,不学不行啊!原神!


2077.12.19米哈游面试题T1

题面的意思就是给你 \(k\) 个序列,然后 \(Q\) 次询问,每次问序列中的后继在什么位置,要求询问强制在线。

有一个原神算法就是枚举每个序列然后直接二分,单次 \(k\log n\),听着就很原神。

我们再来考虑一个野蛮一点的算法

我们在二分次数上做文章,考虑把所有序列全部拼在一起,然后进行一手二分。

但是这样只能找到一个值,什么也找不到,所以对于每个数我预处理出他们在每个序列上的后继,利用单调性可以做到 \(O(nk)\),非常帅气的算法,但是空间复杂度接受不了,存不下(唉,谁叫你不留空间)

那我们干脆再弱智一点,来到原神的领域,考虑把这个大序列掰成 \(n\) 个,因为我们只关心我们的下一个是怎么样对吧,所以我们现在设 \(M_i\) 表示 \(A_i\) 与 \(A_{i+1}\) 的并,再对每个数记录这个数在第 \(i\) 个序列和第 \(i+1\) 个序列中的后继分别在哪。

可惜没法做,因为这玩意出了所有的话做第二轮的时候判断标准就会从两个序列一起判跌落成只判一个序列,再往后可谓是一点准确度也没有了,如果要判就必须拿指针在另一个序列上动,如果保留指针离线的话可以做(不过都有这种程度了为什么不直接枚举),可惜强制在线,当然也可以倒过来存储所有的,空间会炸。

于是我们就想怎么优化他,我们发现我们自己作死要引入下一个序列的全部,如果我每 \(d\) 个取一个呢?容易发现前一个序列二分出来来找人,误差不会超过 \(d\),枚举误差内的数就行。

在板题中大家都取 \(d=2\),因为这样做了之后一个序列的长度肯定不会超过 \(2n\),具体原因自己分析。

这就是分散层叠板子。


考虑一般形式,给你一个 DAG,每个点代表的是一个序列,每次在 DAG 上面抽一条链出来问你他的所有后继,对于这种你考虑把她的最大出度 \(k\) 拿下,比如例题 \(k=1\),我们选择 \(d\) 是没有啥特殊要求的,要求就是 \(d\) 不能超过 \(\frac{n}{k}\),原因显然,最后时间复杂度的话,考虑第一次的 二分,那个二分是 \(O(\log n)\) 的后面做了序列个数次枚举就做好了。

因为 \(d\) 是常数所以不考虑他但是做得时候扰动的常数如果很大还是要计算。。


分散层叠在分块上的运用。

这玩意看着就很分块吧,有分散层叠不用王八蛋!

标签:二分,原神,层叠,枚举,分散,序列
From: https://www.cnblogs.com/kisara-no-inu/p/17912867.html

相关文章

  • CSS(层叠样式表,Cascading Style Sheets)
    CSS(层叠样式表,CascadingStyleSheets)是一种用于描述文档样式和布局的样式表语言。它可以与HTML结合使用,用于控制网页的外观和格式。以下是CSS的主要特点和一些基本概念:基本概念:选择器(Selectors):选择器是CSS规则的一部分,用于选择要应用样式的HTML元素。例如,p选择器选择所有......
  • 第三章《不要太广太分散》
    1.价格变动价格起起落落,大的价格变动背后有一股不可抗的力量价格变动背后有一股不可抗力力量背后的原因不要刨根问底。思路会被蒙蔽确认价格变动,然后顺势操作投机小船,不和市场争辩,更不要对抗市场2.不要太广不要对大量股票感兴趣。看几只股票比大量股票要容易的多。不要买......
  • isolation独立层叠上下文用例
    1.图片显示在文字下方,背景上方只需要在容器加上.card{position:relative;isolation:isolate;}详细可参考 [译]你需要知道的CSS属性isolation,原文 TheCSSpropertyyoudidn'tknowyouneeded 2.隔离mix-blend-mode就是使得mix-blend-mode失效,在多个层级......
  • 11、层叠布局(Stack、Align、 Positioned)
    FlutterStack组件Stack表示堆的意思,我们可以用Stack或者Stack结合Align或者Stack结合Positiond来实现页面的定位布局  Alignment(对齐)类是用于表示相对于父容器的对齐方式的;Alignment类的常见用法:Alignment.topLeft:左上对齐Alignment.topCenter:居中顶部对齐Align......
  • 【溶解度工具】上海道宁为您带来了解溶解度、分散性、扩散、色谱等问题的强大而实用的
      高度参数化的UNIFAC技术可以提供出色的预测COSMO-RS方法的量子化学基础可以在明确的公式中进行精确预测Abraham参数和NRTL-SAC也各有其独特的功能优秀的配方师会使用正确的工具来完成手头的工作  如果您必须只使用一种工具那么它应该是HSP......
  • 如何建立团队知识库管理系统,把分散信息有效整理?
    对于我们广大企业管理者来说,知识库作为一个「统一的资料收集中心」,意义在于将分散的资料集中起来,统一处理,降低管理成本。 以常见的项目小组为例,如果你希望将小组内优秀的方法论和工作SOP文档在整个部门分享学习,就可以建立团队知识库管理系统,让同事们都可以登录并且查询知识库相关......
  • 2850. 将石头分散到网格图的最少移动次数-362
    2850.将石头分散到网格图的最少移动次数给你一个大小为3*3,下标从0开始的二维整数矩阵grid,分别表示每一个格子里石头的数目。网格图中总共恰好有9个石头,一个格子里可能会有多个石头。每一次操作中,你可以将一个石头从它当前所在格子移动到一个至少有一条公共边的相邻......
  • LeetCode/将石头分散到网格的最少移动次数
    给你一个大小为3*3,下标从0开始的二维整数矩阵grid,分别表示每一个格子里石头的数目。网格图中总共恰好有9个石头,一个格子里可能会有多个石头。每一次操作中,你可以将一个石头从它当前所在格子移动到一个至少有一条公共边的相邻格子。请你返回每个格子恰好有一个石头的......
  • STM32学习笔记:分散加载
    分散加载是提高单片机上限的一个非常重要的能力。以STM32H7为例,H7的RAM为:512KbytesofAXI-SRAMmappedontoAXIbusonD1domain,SRAM1mappedonD2domain:128Kbytes,SRAM2mappedonD2domain:128Kbytes,SRAM3mappedonD2domain:32Kbytes,SRAM4mappedonD3dom......
  • 粉状聚合物分散剂行业市场调查趋势分析报告2023-2029
    2023-2029全球粉状聚合物分散剂行业调研及趋势分析报告2022年全球粉状聚合物分散剂市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国粉状聚合物分散剂市场占据全球约%的市场份......