3 条题解

  • 3
    @ 2022-11-7 16:35:11

    原题连接:Problem - C - Codeforces

    本题的核心需要考虑: 每次攻破敌对公会以后是否需要更换攻城炮的的位置?

    只需要比较一下:更换位置的花费和更换后可以减少占领后续公会的花费进行比较,如果前者大就不换,后者大就换,这样总花费是最小的。

    我们需要先预处理出 xix_i的前缀和。

    更换位置的花费: 假如是从第 prep r e 个公会位置占领到第 ii 个公会, w1=abs(c[i]c[pre])aw 1 = a b s ( c [ i ] − c [ p r e ] ) ∗ a

    假如更换以后可以减少占领后续公会的花费:w2=(ni)b(c[i]c[pre])w 2 = ( n − i ) ∗ b ∗ ( c [ i ] − c [ p r e ] )

    只要比较这两个的花费然后选择方案即可。

    信息

    ID
    839
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    68
    已通过
    9
    上传者