CodeForces - 1400D Zigzags(简单dp)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 1400D Zigzags(简单dp)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出一個長度為 n 的數列 a ,現在要求找到滿足條件的四元對 ( i , j , k , l ) 的個數:
題目分析:n 只有 3000 ,顯然支持 n * n * logn 的時間復雜度,所以可以枚舉四元對中其中的兩個位置,然后去計算剩下的兩個位置中有多少個符合條件的,基于此,我們可以設計兩個簡單的 dp 輔助實現,dp1[ i ][ j ] 代表的是 [ 1 , i ] 區間內,j 出現的次數,相似的,dp2[ i ][ j ] 代表的是 [ i , n ] 區間內,j 出現的次數,這樣我們就可以 n * n 去枚舉 j 和 k ,對于每一對 j 和 k ,我們都可以直接得出 k 后面有多少個等于 a[ j ] 的個數,以及 j 前面有多少個等于 a[ k ] 的個數了,其乘積的累加和便是答案
代碼:
?
?
總結
以上是生活随笔為你收集整理的CodeForces - 1400D Zigzags(简单dp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeForces - 1400G M
- 下一篇: 牛客多校1 - Infinite Tre