2020-4-10pdd

1 :買三贈一

N個數的數組,求有多少個連續數和能被M整除

在這裏插入圖片描述

在這裏插入圖片描述

  • 先把每個位置上的值先模上K,得到一個方便計算且加和後不會太大的數組

  • 新建數組s,s[i] = sum(A[0]…A[i]),然後模K(s[i]範圍0-K)

  • 如果A[i]+…+A[j]整除

    • 也就是s[j]-s[i-1]==0
  • 也就是s[i-1]和s[j]相等啊

    • 我令s[-1]==0啊!

計算零出現v0v_0:v0(v0+1)2\frac{v_{0}(v_{0}+1)}{2}

計算1出現v1v_1:v1(v11)2\frac{v_{1}(v_{1}-1)}{2}
.
.
.
計算K-1出現vK1v_{K-1}:vK1(vK11)2\frac{v_{K-1}(v_{K-1}-1)}{2}

  • 將s數組化爲一個字典,記錄每個值出現的次數
  • 設同一值出現的次數爲v
    • 則能夠組合成的有效解個數爲v*(v-1)/2,
    • 最後把所有的值的計算結果加起來即可。

中獎的號碼:0-9,最小的代價

  • 至少k個連續

222 3 44

  • 至少4個連續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章