2018.12.08 codeforces 939E. Maximize!(二分答案)
生活随笔
收集整理的這篇文章主要介紹了
2018.12.08 codeforces 939E. Maximize!(二分答案)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傳送門
二分答案好題。
題意簡述:要求支持動態在一個數列隊尾加入一個新的數(保證數列單增),查詢所有子數列的 最大值減平均值 的最大值。
然而網上一堆高人是用三分做的。
我們先考慮當前的答案有可能由什么構成。
于是問題變成了去求min{(∑j=1iai)+ani+1}min\{\frac{(\sum_{j=1}^ia_i)+a_n}{i+1}\}min{i+1(∑j=1i?ai?)+an??}
然后令bi=(∑j=1iai)+ani+1,ci=bi?bi?1b_i=\frac{(\sum_{j=1}^ia_i)+a_n}{i+1},c_i=b_i-b_{i-1}bi?=i+1(∑j=1i?ai?)+an??,ci?=bi??bi?1?,可以用作差法證明ccc數組單調,于是二分出ccc最接近0的項就行了。
代碼:
轉載于:https://www.cnblogs.com/ldxcaicai/p/10367837.html
總結
以上是生活随笔為你收集整理的2018.12.08 codeforces 939E. Maximize!(二分答案)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 强大的金融类图表库 TradingVie
- 下一篇: go——工程结构