bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线【dp】
生活随笔
收集整理的這篇文章主要介紹了
bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线【dp】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
i的初始化寫成2了于是成功查錯2h……怕不是個傻子
設f[i][j]為第i根高為j,轉移是
\[ f[i][j]=min(f[i-1][k]+abs(k-j)*c+(j-h[i])^2)(j>=h[i],k>=h[i-1]) \]
時間復雜度是1e5*1e2*1e2,空間復雜度是1e5*1e2,顯然都過不了
abs很礙眼,所以考慮分兩種情況,化簡之后就是
\[ f[i][j]=min(f[i-1][k]+k*c)-j*c+(j-h[i])^2(j>=h[i],k>=h[i-1],k>=j) \]
\[ f[i][j]=min(f[i-1][k]-k*c)+j*c+(j-h[i])^2(j>=h[i],k>=h[i-1],k<j) \]
然后另開數組ad[i][j]表示i根從j到100最大的f[i][j]+jc,mi[i][j]表示i根從a[i]到j最大的f[i][j]-jc,這個可以在求完f[i][]之后直接掃一遍求出,這樣時間復雜度就降為了1e5*1e2
然后發現f,ad,mi的i維都沒用,所以直接推掉,空間復雜度就變成了1e2(還有1e5的h數組)
就沒了
轉載于:https://www.cnblogs.com/lokiii/p/9215657.html
總結
以上是生活随笔為你收集整理的bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线【dp】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android初学第34天
- 下一篇: 五年级上册英语70,71页答案