YbtOJ 最大均值

2022-09-22 00:18:10 字數 871 閱讀 1687

因此,這個 \(\text\) 就是所求的最大的平均值

將上個轉化來的問題繼續轉換

既然上個問題中是使平均值不小於 \(\text\) ,那麼如果將 \(a\) 序列的所有值都減去 \(\text\) ,那麼問題又變成了

是否存在乙個長度不小於 \(l\) 的子段,子段和非負

子段和可以通過字首和相減得到,即設 \(\text_i\) 為 \([a_1,a_i]\) 的和,則有

\[\displaystyle\max_\+\cdots+a_i\}=\max_\_i-\min_\_j\}\}

\]\([j,i]\) 即為乙個長度不小於 \(l\) 的子段

由於 \(j\) 的取值範圍 \([0,i-l]\) 隨著 \(i\) 的增長每次只擴大 \(1\) (即每次只有乙個新值進入範圍),那麼其實不需要列舉 \(j\) ,直接比較上一部分的最小值與新值即可

#includeusing namespace std;

const int maxn = (1e5+5);

const double eps = 1e-5;

double a[maxn];

double sum[maxn];

int n,l;

double b[maxn];

bool check(double mid)

return ans >= 0;

}int main()

double l = -1e6;

double r = 1e6;

while(l + eps < r)

printf("%d",int(r*1000));

return 0;

}

YbtOJ高效高階 二分 3 最大均值

ybtoj高效高階 二分 3 給定正整數序列a 求乙個平均數最大的,長度不小於 l 的 連續的 子段。10 66 4 21038 59 416500顯然二分 那要不然為啥是二分練習題呢 我們二分出這個平均值 然後把數列中每個數都減去這個平均值 然後找是否有一段長度不小於l的且和不為負數的數段即可 i...

YbtOJ20029 最大權值

作為今天膜你抄模擬賽上唯一切掉的題目,小w在此氵一篇題解。比賽中的題目,題庫還沒有 有乙個長度為 n 的實數序列,下標從 1 開始,其中第 k 個位置的實數為 p cdot sin a cdot k b cos c cdot d 2 sin 和 cos 採用弧度制,其中 p,a,b,c,d 均為給定...

YbtOj練習 貪心 1最大積分

這道題的題意描述有問題。問題很大,導致我wa了無數次。如果看這句話很容易就會理解錯。在我wa了n次之後看到了這兩個字,哦豁,原來這裡的意思是當你在第i級時,如果買的總件數達到了t i 那麼就可以公升級。includeusing namespace std typedef unsigned long ...