首页 > 其他分享 >P10220 [省选联考 2024] 迷宫守卫 题解

P10220 [省选联考 2024] 迷宫守卫 题解

时间:2024-03-04 13:33:05浏览次数:29  
标签:子树 魔力 记录 省选 题解 节点 序列 联考

说一下自己赛时做法。赛时会了,但没能调出来,几乎确定进不去队了,留下这篇题解作为这次比赛的记录吧。

称激活守卫为打开开关。

首先考虑,如果确定所有开关的情况,Bob 有一个简单的贪心做法:当走到一个点时,递归其左右子树并得到两个序列,若右子树的对应序列的小于左子树的对应序列,则右边更优,若开关未被打开,他就会往右走;否则往左走。

考虑能否记录一些简单的东西供 A 参考。

首先,记录剩余魔力值一定是不可能的,这启发我们记录某个决策需要花费的最小魔力值,若剩余魔力值大于它,则该决策可行。

那么我们需要比较两棵子树构成的序列,并据此给出代价。

注意到叶节点上是排列,因此只需记录序列的第一位即可比较大小。因此有自然的想法:在节点 \(u\) 上记录很多 \((v, d)\),表示:站在 \(u\) 上遍历其子树,若 \(< q_v\) 的所有节点都不可达,且 \(q_v\) 可达,需要花费的最小代价。

求出 \((v, d)\) 后,每次贪心选择让 \(v\) 最大的方案并往下走。假设 \(v\) 在左子树,那么,先把魔力值全部供左子树使用,再将多余的魔力值给右子树使用。为了保证左右子树独立,我们可以再添加一个数 \(t\),表示,为了让 \(u\) 处 \(< q_v\) 的节点不可达,异于 \(v\) 一侧需要花费的最小代价。容易发现扣除 \(t\) 后向下递归,将多余的魔力值与 \(t\) 一起传进另一侧的子树,最优,且一定合法。

显然,魔力值越大,就可以让一棵子树的字典序越大,这里允许不用完的情况。

最优性:首先此时 \(v\) 最大。因为异于 \(v\) 一侧花费的魔力值最小,\(v\) 所在子树能获得最多的魔力值,即字典序一定最大。

合法性:另一侧的子树可达的权值最小点一定大于 \(q_v\),字典序增大后仍然成立。

所有 \((v, d, t)\) 加起来不超过 \(n 2^n\) 个,如果我们可以在获得 \(u\) 的左右儿子的 \((v, d, t)\) 的情况下,\(O(siz)\) 求出 \(u\) 的所有 \((v, d, t)\),则问题被解决。

考虑按 \(v\) 做归并排序。

假设当前左侧扫到 \((v_l, d_l, t_l)\),右侧扫到 \((v_r, d_r, t_r)\)。设左侧小于右侧,则 \(d=\min\{w_u, d_r\}\);否则 \(d=d_l\),当 \(l, r\) 不存在时视为正无穷。\(t\) 可以简单讨论得出,需要同时记录是否开启 \(w_u\)。我实现时 \(t=-1\) 代表开启 \(w_u\),因为显然此时不需要为右边预留魔力值。

综上,这道题做完了。

等我调完了放代码。

标签:子树,魔力,记录,省选,题解,节点,序列,联考
From: https://www.cnblogs.com/purplevine/p/18051617

相关文章

  • 2024联合省选 游记
    \(\texttt{Day-1}\)倒数第二天了,\(6\)个参加省选的同学除了我全部都提前上机房了,而我一个人悠哉游哉的坐在教室做文化课作业。被力老师看见了。她问我,你就这么自信吗,你就觉得你随便考就能考过他们吗。我非常淡定的回答道,上去了也没用,不如在下面把文化课进度跟上,还可以放松。......
  • 联合省选2024游记
    不知道该记什么呢?day0:从[]回[],进入学校。和我们班的留校的同学讨论了一番如何对圈子分类以及基金会的抽象条目,没做什么题。晚上一直在听歌,“未成形的思绪,穿梭在脑叶和神经。”睡觉,睡眠非常灾难,由于不知道为啥,我在刷手机和躺着中辗转,2点多才睡着。day1:6点起床,然后坐车去......
  • P10220 [省选联考 2024] 迷宫守卫
    二分+贪心+DP。跟D1T2思路有点类似,反正很简单。复杂度大约是\({\rmO}(n^22^n)\)。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+5;constllinf=1e18;intT,n,q[N];llK,w[N];vector<int>Q;lldp(into,intd,in......
  • LY1156 [ 20230320 CQYC省选模拟赛 T3 ] 集结
    题意平面上\(n\)个点,每个点按照曼哈顿距离移动。要求在\(m\)时刻后,所有点都处于同一位置。求方案数。Sol平凡地,考虑曼哈顿距离转切比雪夫距离。这样\(x\)和\(y\)就完全独立了。考虑先算\(x\)的贡献,再算\(y\)的贡献。判断一下是否能到当前的\(x\)或\(y\)就......
  • 联合省选2024游记/退役记
    等到风吹过树梢,等到蝴蝶扇动翅膀,等到鹿在林间漫步,等到鲸吞吐海洋。等到历尽千帆,我们再次相逢。Day-4做了一个梦。梦中的自己出现在跑道上,一声哨响过后,奋力向前奔跑。但胸口仿佛负千斤,被压得胸闷,被挤得气短,逐渐远远落于众人身后。醒来时才发觉,胸口的大石,是需要自己移除的......
  • 2024年3月3号题解
    225.用队列实现栈解题思路push操作是直接把元素放入队列里面pop操作时把队列头的元素放入到队列尾,重复队列元素个数减一次top操作就是pop加push操作代码实现typedefstruct{intq[1001];intl;intr;}MyStack;MyStack*myStackCreate(){MyS......
  • 爆零记——2024省选篇
    这是我短暂的不到半年的OI生涯中第一次爆零。不过我知道这绝对不会是最后一次的:)\[Day\;-1\]瞄了一眼各种板子,唯独没看数论。\[Day\;1\]上来先看了一眼题目,觉得T1T2是可做题。觉得T1简单,先写T1。然后写了将近两个半小时之后发现自己看错题了……题目:\[\sum_{i=0}^{m-1}(......
  • NOI2023联合省选 HE省选体验
    写在前面照了挺多照片,本来只想传照片不写文字的,但博客园只让传小于等于2MB的照片(这大小是个手机照的照片都传不上去吧),那好吧,我就写写;Day0出发时还是很激动的,但没有CSP和NOIP那么紧张(那两篇等以后看看再写吧);熟悉的大巴,熟悉的路线(毕竟也是第三次了),确实勾起了很多回忆;大巴上没......
  • noi省选体验赛游记
    3.1上午早上吃完饭先拿了手机然后上了节奥赛课,十点左右我们就出发了,先坐大巴到德州,中午自己安排吃饭,我,w1210,cpa,zhengchenxi坐一起吃的巴拉永和,盖饭+虾饺+蒸饺,吃完自己坐高铁到秦皇岛,然和我们集合又坐大巴去住了高档的首旅京伦(晚上打车出去转,司机说你们是学生吧,怎么还住上首旅京伦......
  • NOI2024联合省选 游寄
    day-62024/2/24元宵节下午去黄河北玩的路上发现没进NOIP的可以去省选锻炼,而且就在zzc的捞胆位——山师附中,就填了报名表交了上去,期待CCF能让我去。day02024/3/1等了一周,中午终于下通知了,但选Windows的被发配到山师二附中了。激动得很。晚上5:15从学校窜了出来,......