1 条题解

  • 0
    @ 2025-8-24 22:33:32

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 幽云蓝
    a

    搬运于2025-08-24 22:33:32,当前版本为作者最后更新于2021-08-06 00:40:00,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    这里是八云蓝的官方题解~

    Subtask1\textbf{Subtask1}

    直接二分即可,蓝不再赘述。

    Subtask2\textbf{Subtask2}

    20%20\% 分数的解法:对于每个客人都做一次二分即可。

    40%40\% 分数的解法:首先考虑“随机数据”带来的性质。对于一个长度为 nn 的序列,若从其中均匀的选出 xx 个位置作为紫色位置,那么每 nm\frac{n}{m} 个位置中期望恰好有一个紫色位置。考虑将序列分成 mm 个大小为 nm\frac{n}{m} 的块,期望下,每个块都恰好有一个紫色位置。注意到数据是基本均匀随机,所以可能有一定数量的块不满足该性质,直接用 20pts20pts 的解法暴力做即可。判断一个块内是否有紫色位置是很简单的,所以问题转化为判断块内是否存在切仅存在一个紫色位置,以及这个位置是什么。如果判断出了是否仅存在一个紫色位置的话,由于给出的等差数列公差大于等于 11,所以每个数互不相同,那么判断紫色位置是什么也就很简单啦。

    • 如何判断“块内是否仅存在一个紫色位置”:对于一个块,块内数显然有从左往右单调递增,那么设这个块为区间 [l,r][l,r],由于每个数都是正数,如果有 al+al+1>ara_l+a_{l+1}>a_r,那么对于任意一个选出 >1>1 个紫色点的情况,其紫色点的权值(也就是 aa 值)和一定大于任意一种选出恰好 11 个紫色点的情况。所以显然的,对于满足 al+al+1>ara_l+a_{l+1}>a_r 的块,可以判断“块内是否仅存在一个紫色位置”。我们之后称满足这一条件的块或区间为有趣块或者有趣区间。
    • 有趣块的数量:是 m1m-1。考虑下述的证明方法:对于序列 aaai=(i1)k+sa_i=(i-1)k+s。第一块不一定是有趣块,直接考虑第二块是否为有趣块。记 nm=L\frac{n}{m}=L,那么第二块的区间即为 [L+1,2L][L+1,2L]。带入上面的不等式可得 aL+1+aL+2>a2La_{L+1}+a_{L+2}>a_{2L},带入 ai=(i1)k+sa_i=(i-1)k+s(2L+3)k+2s>2Lk+s(2L+3)k+2s>2Lk+s,由于 k,s1k,s\geq1,所以第二个块一定是有趣块。易证第二个块是有趣块,之后的块就一定是有趣块。于是有趣块数即为 m1m-1

    综上,我们可以达到一个比较优的询问次数。这足以让我们拿到 sub2 的 4040% 的分数。

    100pts100pts 的做法:虽然上述做法看起来很优,但是多次调用 gen 可以发现,数据仅是比较均匀,它并没有我们想象中一样均匀,在很多时候,一个块内的数数量会大于 11。好消息是,一个块内的数的期望很小,也就是说,一个块内不会有很多数。并且,这些块内的数的分布仍是比较均匀的。第一个块不是有趣块,于是这个块我们暴力二分。对于其他的块,蓝有更为优雅的解决方案。

    • 如何优雅的处理有趣块(本部分轻微卡常):考虑一个类似于线段树二分的做法,每次询问一个区间 [l,r][l,r],如果这个区间内有紫色位置的话就取 midmid,继续询问区间 [l,mid][l,mid],否则令上一次询问的区间为 [l,r][l',r'],询问 [r+1,r][r+1,r']。注意到在这样二分的时候,如果某一块内注意到,如果对于一个块 [l,r][l,r],你询问了 [l,x][l,x],那么你就可以通过相减的方式得到 [x+1,r][x+1,r] 内的紫色位置的权值和。并且有一个简单优化——如果当前询问的区间有且仅有一个紫色位置,那么可以直接求出这个位置(易证一个有趣块的子区间是有趣区间)。

    综上,我们可以在 200T200T 的限制下稳定的通过此题。

    update:赛时有人不分块就过题了,而且比起分块优化显著,所以分块其实并没有必要的说。但是对于第一块的特判是必须的(赛时没有卡住,向大家谢罪)。

    • 1

    信息

    ID
    6706
    时间
    2000ms
    内存
    250MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者