CodeForces - 1427C The Hard Work of Paparazzi(dp+剪枝)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 1427C The Hard Work of Paparazzi(dp+剪枝)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出 n 個點 ( x[ i ] , y[ i ] ),如果第 t[ i ] 可以到達這個位置,貢獻就可以加一,行走需要花費的時間等于兩點之間的曼哈頓距離,問最大貢獻是多少
題目分析:dp[ i ] 表示到點時的最大貢獻,一個比較顯然的轉移方程是:O( n ) 枚舉 j,滿足 j < i,且滿足兩點的距離小于等于兩點的間隔時間:dp[ i ] = max( dp[ j ] + 1 ),但問題是 n 比較大
通過觀察不難發現 r 比較小,又因為題目中保證了 t[ i ] 是遞增的,而在圖中最遠的兩點的曼哈頓距離也不過 r + r - 2,所以所有小于 ( r + r - 2 ) 的 j 一定是可以到達 i 的,此時維護一個前綴最大值用來剪枝即可,總時間復雜度為 O( n * ( r + r - 2 ) )
代碼:
?
?
總結
以上是生活随笔為你收集整理的CodeForces - 1427C The Hard Work of Paparazzi(dp+剪枝)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces - 731D 80
- 下一篇: CodeForces - 993C Ca