HDU 5247 尋找連續數

2021-09-09 05:50:17 字數 960 閱讀 9108

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 2

題意分析:有多少個長度與為k的區間數連續的。

解題思路:

首先解決是否連續的問題:我採用這個區間的最大值-最小值和長度進行比較,如果相等就是連續的

採用乙個vis來標記這個數是否出現過,如果出現過就不用再找下去了, 出現兩個相同數字就不可能連續下去了

再用乙個ans的陣列來記錄長度為1~k的分別有多少個

#include#include#include#include#define ll long long

using namespace std;

int main()

else

break;}}

cout<<"case #1:"<>k;

cout《這個題還是1a的來著,主要是看他們不是t了就是wa了轉換了下思維

hdu5247 找連續數

problem description 小度熊拿到了乙個無序的陣列,對於這個陣列,小度熊想知道是否能找到乙個k 的區間,裡面的 k 個數字排完序後是連續的。現在小度熊增加題目難度,他不想知道是否有這樣的 k 的區間,而是想知道有幾個這樣的 k 的區間。input 輸入包含一組測試資料。第一行包含兩個...

hdu 5247 找連續數

problem description 小度熊拿到了乙個無序的陣列,對於這個陣列,小度熊想知道是否能找到乙個k 的區間,裡面的 k 個數字排完序後是連續的。現在小度熊增加題目難度,他不想知道是否有這樣的 k 的區間,而是想知道有幾個這樣的 k 的區間。input 輸入包含一組測試資料。第一行包含兩個...

hdu5247找連續數

小度熊拿到了乙個無序的陣列,對於這個陣列,小度熊想知道是否能找到乙個k 的區間,裡面的 k 個數字排完序後是連續的。現在小度熊增加題目難度,他不想知道是否有這樣的 k 的區間,而是想知道有幾個這樣的 k 的區間。input 輸入包含一組測試資料。第一行包含兩個整數n,m,n代表陣列中有多少個數字,m...