1. 程式人生 > >【題解】子數組有主元素

【題解】子數組有主元素

自動 出現 code 產生 大於 span 如果 主元 通過

題目描述

  一個數組B,如果有其中一個元素出現的次數大於length(B) div 2,那麽該元素就是數組B的主元素,顯然數組B最多只有1個主元素,因為數組B有主元素,所以被稱為“優美的”。

  給出數組A[0..n-1],問數組A有多少個“優美的”子數組。數組A的子數組是由數組A的連續若幹個元素構成的數組。數組A不是直接給出的,而是通過如下公式自動產生的:

for i = 0 to n-1 do

{

  A[i] = (seed div 2^16) % m

  seed = (seed * 1103515245 + 12345
) % 2^31 }

  如上公式中: n, seed, m都是輸入數據給出的,div是表示整數的整除。^是表示冪運算。

輸入輸出格式

輸入格式

  一行,3個整數,n, seed, m。1 <= n <= 100000。 0 <= seed <= 2^31-1。 1 <= m <= 50。

輸出格式

  一個整數。

輸入輸出樣例

輸入樣例一

5 200 5

輸出樣例一

8

輸入樣例二

10 15 3

輸出樣例二

23

輸入樣例三

8 12345678 1

輸出樣例三

36

輸入樣例四

27 541 50

輸出樣例四

27

題解

【題解】子數組有主元素