首页 > 其他分享 >MX S28

MX S28

时间:2024-11-10 11:32:26浏览次数:2  
标签:需要 后缀 可以 MX 子树外 sum S28 瞬移

A

对于一个子矩阵 \((x_1,y_1),(x_2,y_2)\),其元素和为 \(\sum_{i=x_1}^{x_2}\sum_{j=y_1}^{y_2}S_i\cdot S_j=(\sum_{i=x_1}^{x_2}S_i)(\sum_{j=y_1}^{y_2}S_j)\),\(O(n^2)\) 枚举一下 \(S\) 的所有子区间的和放进一个桶里再检验一下即可。

即对于一个子区间和为 \(S_1\),需要累加和为 \(\frac{T}{S_1}\) 的子区间个数到答案中。特殊地,\(S_1=0\) 或 \(T=0\) 的时候需要一些特殊处理。

使用 unordered_map,\(O(n^2)\)。

B

注意到 \(S[l:r+1]\) 的字典序大于 \(S[l:r]\),于是每次找到的都是 \(S\) 的后缀,那么就可以用哈希+二分来比较两个后缀的字典序大小,每次暴力找字典序最大的后缀,做到 \(O(n^2\log n)\)。

删去一个后缀后,剩余串的后缀之间的大小关系与删前原串的对应后缀的大小关系不变,那么接下来从后往前逐个考虑每个后缀,如果 \(S[i:]>S[j:]\) 且 \(i<j\),那么最优策略中不会选择 \(j\) 这个后缀,于是用单调栈完成这个过程就可以找到过程中会选择的所有后缀了,只需要进行 \(O(n)\) 次大小比较,使用哈希+二分做到单次比较 \(O(\log n)\)。\(O(n\log n)\)。

C

首先我们不关心每次操作选择的 \(i,j\) 是如何配对的,只关心逆时针旋转的次数要等于顺时针旋转的次数。于是可以直接设计 dp 状态 \(f_{i,j}\) 表示考虑了前 \(i\) 个学生,并且有 \(j\) 个“不成对”的操作时得到的最大总幸福度,\(j>0\) 表示多出了 \(j\) 次顺时针,\(j<0\) 表示多出了 \(-j\) 次逆时针,每次转移的时候枚举 \(i\) 顺逆时针旋转的次数就可以完成转移。

这样做的问题在于,\(j\) 这一维的大小没有很好的控制,但是可以观察到 \(j\) 的“有效范围”在 \((-m,m)\) 之间,因为若 \(|j|\ge m\),比如 \(j\ge m\),那么我们对任意一个元素进行 \(m\) 次逆时针操作就可以使 \(j\) 减小 \(m\) 而不改变答案,\(j\leq -m\) 同理。于是这样就得到了一个 \(O(nm^2)\) 的做法。

实现上,又注意到 \(k\) 次顺时针可以用 \(m-j\) 次逆时针代替,所以 \(j\) 可以控制在 \([0,m)\) 内且转移时只考虑顺时针旋转的次数,常数会比较小。

D

如果只是维护每次插入的位置而不删除,可以使用 std::set \(S_1\) 维护极长连续空白段的信息,本题中要求按照长度从大到小排序,仍然可以用其维护,每次插入取出符合题意的一段并放入新的两段(如果存在)。再配合动态开点线段树/离散化之后树状数组或线段树,就可以完成员工不会离开的部分分。

对于删除操作,额外记录每个员工外套的位置,再开一个 set \(S_2\) 存这些位置,查询需要删除的位置在这个 set 中的前驱后继就可以找到 \(S_1\) 中对应的区间完成删除与合并的操作了。

要回答区间有多少个有效点,只需要用动态开点线段树。\(O(q\log n)\),可以参考 std 实现。

E

如果不能瞬移,那么答案是 \((2\sum w_i)-L\),其中 \(L\) 是直径长度。这很好理解,因为可以任选起点终点,这之间的边可以不经过第二次。

如果可以瞬移,类似地,这次瞬移可以让一些边不经过第二次,发现等价于选两条边集不交的链 \(P_1,P_2\),其并集中的边可以只经过一次,那么只需要最大化这两条链的并集的边权和。如果边集有交,可以手玩发现其中一定有边被经过两次,而在唯一点相交是没有问题的。接下来只需要分两种情况:

  • \(P_1\cap P_2=u\),枚举点 \(u\),等价于找四条从 \(u\) 出发的边不交的链使得边权和最大。记 \(dp_{u,i}\) 表示 \(u\) 第一步向不同的儿子走,能取到的第 \(i\) 长的链,转移只需要暴力合并一下。但是这没有考虑到向父亲走的情况,于是再记一个 \(f_u\) 表示 \(u\) 向上走的最长链,计算 \(f_u\) 时用父亲的信息合并一下即可。
  • \(P_1\cap P_2=\varnothing\),枚举点 \(u\),选择 \(u\) 子树内和子树外的最长链,即两个连通块里的直径问题。子树内是好做的,子树外仍然是先从父亲继承,再用经过父亲的答案更新。这里实现上需要关注 \(v\) 的子树外答案分为 \(u\) 的子树外与 \(u\) 的子树内但 \(v\) 的子树外两部分,后者需要精细处理一下。注意,\(fa_u\) 与 \(u\) 之间的边可以用瞬移做到一次都不被经过,相当于对这两个连通块分别做不瞬移的问题,所以还需要额外统计此贡献。

总复杂度 \(O(n)\),可以参考 std 实现。

标签:需要,后缀,可以,MX,子树外,sum,S28,瞬移
From: https://www.cnblogs.com/winter2020/p/18537782

相关文章

  • 洛谷 P11268 【MX-S5-T2】买东西题 做题记录
    我不会贪心。\(a\)元的物品有\(b\)元的折扣,就相当于\(a\)元的物品有一张\(a-b\)元的优惠券。因为一张优惠券是满\(w\)元才可以用,所以可以用的物品在价格\(a\)上是一段区间\([a,\inf]\)。有一个很朴素的想法是,将每一个物品最多能省多少钱先弄出来,然后用优惠券想办法......
  • 定时器(PWM输出)触发ADC采样(DMA)——STM32CubeMX
    在STM32微控制器中,使用定时器(PWM输出)触发ADC采样是一种常见的应用场景,尤其是在需要精确控制采样时刻和频率的场合。本文将详细介绍如何使用STM32CubeMX配置定时器产生PWM波形,并使用DMA传输ADC采样结果。1.定时器PWM输出配置首先,我们需要在STM32CubeMX中配置定时器以产......
  • COMET 射线管 MXR101
    COMETMXR101射线管主要用于非破坏性检查和安全检查,适用于多种工业和安全领域。COMETMXR101射线管由瑞士COMET公司开发和制造,主要用于汽车、航空管道和钢铁行业中的材料非破坏性检查,以及在机场和边境的货物和行李的固定和移动检查。COMET公司一直致力于改进和简化X射线技术,其......
  • MX9291芯片,HDMI转VGA方案,国产HDMI转VGA方案,MX9291设计资料
    MX9291芯片,作为一款国产HDMI转VGA的桥接芯片,近年来在市场上的应用越来越广泛。它以其出色的性能和稳定的表现,赢得了众多用户和厂商的青睐。本文将详细介绍MX9291芯片的特点、工作原理、应用领域以及市场前景,为读者提供一个全面了解MX9291芯片的视角MX9291芯片的主要功能是将HDMI(......
  • TSMI252012PMX-1R5MT电感器详解
    一、引言TSMI252012PMX-1R5MT是一款由深圳市时源芯微科技有限公司(TimeSource)生产的T-core一体化结构电感器,具有独特的结构特点和优异的电气性能。其广泛的应用场景、符合国际环保标准以及精确的电气参数,使其成为众多电子设备中不可或缺的重要元件。本文将对该电感器进行全面......
  • u-boot.imx 与 flash.bin,它们有什么不同?
    在NXP的i.MX系列处理器中,启动文件扮演着非常重要的角色。启动文件在系统上电后执行,负责初始化硬件环境,并启动引导加载程序进入下一阶段。随着i.MX处理器系列的发展,启动文件从早期的u-boot.imx演进到后来的flash.bin,以适应更复杂的硬件需求和安全性要求。本文将深入......
  • ST官方开发工具(一) STM32CubeMX 安装
    STM32CubeMX安装安装Java的环境STM32CubeMX安装在开发STM32MP157的时候我们还需要用到一些ST官方提供的软件,一共有三种:STM32CubeMX、STM32CubeIDE、STM32CubeProgrammerSTM32CubeMX可以直接在ST官网下载到http://www.st.com/en/developmen......
  • 吐血汇总【ATU Book-i.MX 系列】 OP-Gyro (i.MX93) 系列合集,建议收藏!
    OP-GyroSBC方案介绍 开发版  方块图  应用领域  应用领域 -AICamera (IPCSolution) 文章介绍【ATUBook-i.MX9系列】OP-GyroSBC方案介绍 【Webinar】敬请期待 Hardware 【ATUBook-i.MX9系列】NXPi.MX93实作OP-Gyro线路与提示 bySam......
  • 电赛入门之软件keil+cubemx
    hal库可以帮我们一键生成许多基本配置,就不需要自己写了,用多了hal库就会发现原来用基本库的时候都过的什么苦日子(笑下面我们以f103c8t6,也就是经典的最小核心板来演示一、配置工程首先来新建一个工程这里我们配置rcc和sys,sys这个选择高时钟然后我们点上面栏第二个,可以......
  • pageLayoutControl保存mxd
    namespaceBusiness.OutputMap{[Guid("068df737-4a05-4d23-b906-e96693bfabe5")][ClassInterface(ClassInterfaceType.None)][ProgId("OutputMap.SaveMapMxdCommand")]publicsealedclassSaveMapMxdCommand:BaseCommand,IBarBu......