題解:
考試的時候沒有想出來。。。
剛開始想了個比較錯誤的dp
后來想到了容斥。。
但是沒有想到怎么去維護這個東西。。
按照一般的套路
至少有一個相鄰相等的-至少有兩個相鄰相等的
但是這道題里這樣并不好維護
我們考慮用dp來算這個東西
f[i]=f[j]*min(a[j].....a[i])*(-1)^(i-j)
另外我們還要考慮a[1]和a[n]之間的關系
這個我們可以通過讓a[1]是最小值保證他們能相等
這樣復雜度是n^2的
我們可以維護前綴和優化,找到上一個小于它的位置來更新