1 条题解

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

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 幽云蓝
    a

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

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

    以下是正文


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

    Subtask1\textbf{Subtask1}

    读题分。直接输出 Mystia will cook forever... 即可。

    Subtask2\textbf{Subtask2}

    猜想答案要么是无解,要么在一个很小的范围内。根据上述性质可以直接枚举时刻然后暴力计算有没有出现不同的菜。

    可以证明如果不是无解,答案的理论上界为 179179。顺带一提,为了更好的送分,蓝没有卡这个上界,所以你设 100100 甚至设 1010 都能过(不过遇到这种部分分呢,蓝还是建议大家把上界开大一些的)。

    Subtask3\textbf{Subtask3}

    注:本篇题解称题目中幽幽子的点餐为“点菜方式”,xix_i 为初始菜,Δxi\Delta x_i 为变化量。

    非常接近正解的一档部分分。容易发现,一个时刻只要存在两种菜不同,那么这个时刻餐厅就会被摧毁。由于变化量为 00,换句话说,你只需要枚举初始菜不同的两种点菜方式,然后计算出它们出现时刻重合的最小时刻(即设枚举的两个点菜方式为 xxyy,最小时刻即为 lcm(tx,ty)\operatorname{lcm}(t_x,t_y)),最后将所有计算出的时刻取 min\min 然后 1-1 即可。无解情况就是没有出现初始菜不同的两种点菜方式,特判即可。

    Subtask4\textbf{Subtask4}

    注:本篇题解中记“满足两种点菜方式在这一时刻都会点出菜品并且菜品不同的最小时刻”为关键时刻。

    依然考虑枚举两个不同(不是初始菜不同哦)的点菜方式 xxyy,如果对于所有的点菜方式都能够计算出它们的关键时刻,那么对计算出的所有时刻取 min\min 然后 1-1 即可。问题现在变成了对于两个点菜方式 xxyy 计算它们的关键时刻,首先考虑 lcm(tx,ty)\operatorname{lcm}(t_x,t_y) 处,如果相同那么该时刻即为关键时刻,如果两个点菜方式在这个时刻点菜相同的话考虑 2×lcm(tx,ty)2\times \operatorname{lcm}(t_x,t_y) 处,如果仍然相同,那么显然有两个时刻间变化量相同,也就可以得出这两种点菜方式无关键时刻,否则它们的关键时刻即为时刻 2×lcm(tx,ty)2\times \operatorname{lcm}(t_x,t_y)。记得特判无解,如果所有点菜方式见均无关键时刻,那么输出 Mystia will cook forever...

    • 1

    信息

    ID
    7010
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者