天天看點

2015年百度之星初賽(1) --- B 找連續數找連續數 Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5247

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 179    Accepted Submission(s): 65

Problem Description

小度熊拿到了一個無序的數組,對于這個數組,小度熊想知道是否能找到一個k 的區間,裡面的 k 個數字排完序後是連續的。

現在小度熊增加題目難度,他不想知道是否有這樣的 k 的區間,而是想知道有幾個這樣的 k 的區間。

Input

輸入包含一組測試資料。

第一行包含兩個整數n,m,n代表數組中有多少個數字,m 代表針對于此數組的詢問次數,n不會超過10的4次方,m 不會超過1000。第二行包含n個正整數,第 I 個數字代表無序數組的第 I 位上的數字,數字大小不會超過2的31次方。接下來 m 行,每行一個正整數 k,含義詳見題目描述,k 的大小不會超過1000。

Output

第一行輸"Case #i:"。(由于隻有一組樣例,隻輸出”Case #1:”即可)

然後對于每個詢問的 k,輸出一行包含一個整數,代表數組中滿足條件的 k 的大小的區間的數量。

Sample Input

6 2

3 2 1 4 3 5

3

4

Sample Output

Case #1:

2

Mean: 

略 

analyse:

每個詢問暴力枚舉區間,字首和維護區間和,ST表維護區間最小值,然後暴力處理某一區間是否有重複的數,這樣每個詢問加起來是O(n)的。于是O(NM)就行了

Time complexity: O(n)

Source code: 

2015年百度之星初賽(1) --- B 找連續數找連續數 Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5247
2015年百度之星初賽(1) --- B 找連續數找連續數 Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=5247

View Code

上一篇: 字元串

繼續閱讀