F题组合做法

for i in range(n):
    for j in range(i):
        if a[i]!=a[j]:
            res+=1*pow(2,i-j-1,mod)*C(j+(n-1-i),j)
            res%=mod

对于一对不相等的下标(j<i)  a[i]!=a[j]

出现一次的贡献是1

i和j中间夹着的数可以随便选,所以是2^(i-j-1)

两边的数,只能选[0,min(j,n-1-i)]个,乘起来就是这对下标的总贡献

直接枚举个数又是一个n,就n^3了

范德蒙恒等式变式
∑ C(n,i) * C(m,i) = ∑ C(n,i) * C(m,m-i) = C(n+m,m)

优化到只需要算一次组合数

然后预处理一下阶乘,n^2枚举就可以了