【UOJ#246】套路(动态规划)
生活随笔
收集整理的這篇文章主要介紹了
【UOJ#246】套路(动态规划)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【UOJ#246】套路(動(dòng)態(tài)規(guī)劃)
題面
UOJ
題解
假如答案的選擇的區(qū)間長(zhǎng)度很小,我們可以做一個(gè)暴力\(dp\)計(jì)算\(s(l,r)\),即\(s(l,r)=min(s(l+1,r),s(l,r-1),abs(a_r-a_l))\)。
我們發(fā)現(xiàn)\(s(l,r)\le \frac{m}{r-l+1}\),那么當(dāng)長(zhǎng)度足夠大的時(shí)候\(s(l,r)\)的取值很小。
所以我們對(duì)于詢問(wèn)分治處理,當(dāng)長(zhǎng)度小于\(\sqrt m\)時(shí),直接\(dp\)計(jì)算貢獻(xiàn)。
否則,當(dāng)長(zhǎng)度大于\(\sqrt m\)時(shí),枚舉\(s(l,r)\)的值,對(duì)于每個(gè)右端點(diǎn)計(jì)算其合法的最大左端點(diǎn)。
復(fù)雜度\(O(n\sqrt m)\)
轉(zhuǎn)載于:https://www.cnblogs.com/cjyyb/p/10283683.html
總結(jié)
以上是生活随笔為你收集整理的【UOJ#246】套路(动态规划)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java多线程_阻塞队列
- 下一篇: idea2020.03 lombok异常