最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • Equal Values

    正文概述 陈老师   2026-01-20 15:15:49  

    题目描述

    给定一个由 nn 个整数组成的数组 a1, a2,  , ana_1,\ a_2,\ …\ ,\ a_n

    在一次操作中,你可以执行以下两种操作之一:

    1. 向左覆盖:选择一个位置 ii1<in1<i≤n),并将 ii 左侧的所有元素的值设为 aia_i。即,对所有 aja_j1j<i1≤j<i)赋值为 aia_i。该操作的成本为 (i1)ai(i−1)⋅a_i
    2. 向右覆盖:选择一个位置 ii1i<n1≤i<n),并将 ii 右侧的所有元素的值设为 aia_i。即,对所有 aja_ji<jni<j≤n)赋值为 aia_i。该操作的成本为 (ni)ai(n−i)⋅a_i

    注意

    • 受操作影响的元素可能已经等于 aia_i,但这不会改变操作的成本。
    • 你可以执行任意次数的操作(包括零次)。

    目标: 找到使数组中所有元素相等的最小总操作成本。

    输入格式

    第一行包含一个整数 tt1t1041≤t≤10^4)——测试用例的数量。

    每个测试用例的第一行包含一个整数 nn2n5×1052≤n≤5\times10^5)。

    第二行包含 nn 个整数 a1, a2,  , ana_1,\ a_2,\ …\ ,\ a_n1ain1≤a_i≤n)。

    所有测试用例的 nn 之和不超过 5×1055\times10^5

    输出格式

    对于每个测试用例,输出一个整数,表示使所有元素相等的最小总操作成本。

    样例

    3
    4
    2 4 1 3
    3
    1 1 1
    10
    7 5 5 5 10 9 9 4 6 10
    
    3
    0
    35
    

    样例1解释

    在第一个测试用例中,你可以执行两次操作:

    1. 选择 i=3i=3,并将其左侧的所有元素设为 a3=1a_3=1,成本为 (31)×1=2(3−1)\times1=2
    2. 选择 i=3i=3,并将其右侧的所有元素设为 a3=1a_3=1,成本为 (43)×1=1(4−3)\times1=1

    总成本为 2+1=32+1=3

    在第二个测试用例中,所有元素已经相等,因此无需执行任何操作。

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » Equal Values