1 条题解

  • 0
    @ 2025-8-24 22:29:38

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Meronri_Deng
    假使lo-lo-lo-lo-lo-ser有具体模样的话,兴许是我的模样。

    搬运于2025-08-24 22:29:38,当前版本为作者最后更新于2021-04-07 13:11:41,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    由题意, si+1s_{i+1}sis_i的倍数。
    枚举 s1s_1,假设每次都取走 s1s_1 个石子,则第 ii 堆需要取 ais1\lfloor \frac{a_i}{s_1}\rfloor 次。
    设数组 A={2,4,6,8,10}A=\lbrace2,4,6,8,10\rbrace,s1=3s_1=3, 则所需操作次数集合S={0,1,2,2,3}S=\lbrace0,1,2,2,3\rbrace。 Bessie的第一回合操作,意味着在集合BB中选择一个元素 xx,使 xx 变为x1x-1
    ii回合的操作,设 si=ks1s_i=k\ast s_1 ,意味着在集合BB中选择一个元素 xx ,使 xx 变为 xkx-k ,同时忽略小于 kk 的元素 xx
    若第ii回合后,xS,x<k\forall x \in S,x<k,即下一回合的牛无法取石子,则当前取石子的牛获胜。


    Q:在什么条件下必胜?
    若操作完之后,任意元素 xx 均出现偶数次,则之后重复另一位玩家的操作即可。

    Q:要在第一回合使任意元素 xx 均出现偶数次,有什么条件?要如何操作?

    • 若操作前任意元素 xx 均出现偶数次,则该次操作必然会导致存在某个元素xx出现奇数次,此时 Bessie 先手必败。

    • 若操作前有 11 个元素 x1x_1 出现奇数次,

      • 如果 x1>1x_1>1
        • x1x_1 进行操作会导致 x11x_1-1 出现奇数次,此时 Bessie 先手必败;
        • x1x_1 以外的元素 xx 操作,导致 xx 出现奇数次,此时 Bessie 先手必败;
      • 如果 x1=1x_1=1 ,对 x1x_1 操作,满足条件,此时 Bessie 先手必胜。
    • 若操作前有 22 个元素 x1,x2x_1,x_2 出现奇数次,设 x1<x2x_1<x_2

      • 如果 x1=x21x_1=x_2-1 ,则对 x2x_2 操作后, x1,x2x_1,x_2均出现偶数次,此时 Bessie 先手必胜。
      • 如果 x1<x21x_1<x_2-1 ,则对 x2/x1x_2/x_1 操作后, x1/x2x_1/x_2出现奇数次,此时 Bessie 先手必败。
    • 若操作前有 M(M>2)M(M>2) 个元素出现奇数次,则无论怎么操作,都无法使所有元素均出现偶数次,此时 Bessie 先手必败。


    Q:请问 Elsie 的后手必胜策略是怎样的?
    找到集合 SS 中最大的出现奇数次的元素 xx ,并把它变成 00 ,之后任意元素均出现偶数次。

    Q:如何算出集合SS中每个元素的出现次数?O(max(ai)2)O(\max(a_i)^2) 的时间复杂度显然不现实。 可以用前缀和维护。
    sumisum_i 表示数组 AA 中有多少元素 AjA_j 满足1Aji1 \leq A_j\leq i
    想要求出 s1s_1 对应的集合 SSxx 元素出现的次数tt, 借助前缀和即可。
    需取 xx 次的石子堆中,至少包含 xs1x \ast s_1 个石子,至多包含 (x+1)s11(x+1) \ast s_1-1个石子。
    t=sum(x+1)s11sumxs11t=sum_{(x+1) \ast s_1-1}-sum_{x \ast s_1-1}


    感谢阅读!

    • 1

    信息

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