1. 程式人生 > >雜題筆記

雜題筆記

red 劃分數 class 隨機 轉移 劃分 fast 不同 一個

YCJS3928 國家隊選拔(劃分數)

Descirption

一個長度為n的序列,序列上每個元素的權值在\([1,n]\)等概率隨機,同時要求相鄰元素權值不同,求所有合法序列的出現最多的元素個數的期望個數

\(n\le 50\)

Solution

  • 如果考慮每一時刻的狀態,首先先只考慮權值出現次數集合,那麽就化為劃分數的問題,在n=50時大概只有S=$10^6 $ 種情況。

  • 然後考慮轉移,記錄上一位的權值的出現次數,那麽狀態數就是\(n\times S\)的,然後轉移復雜度時\(O(n)\)
  • 狀態可以Hash掉,用map維護的話跑出最大值的時間是180s左右,然後使用unordered_map+Ofast只用15s

雜題筆記