題記 數學 區間連號數 藍橋杯

2021-10-05 02:40:24 字數 953 閱讀 1716

題目:

小明這些天一直在思考這樣乙個奇怪而有趣的問題: 在1~n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是: 如果區間[l, r]

裡的所有元素(即此排列的第l個到第r個元素)遞增排序後能得到乙個長度為r-l+1的「連續」數列,則稱這個區間連號區間。

當n很小的時候,小明可以很快地算出答案,但是當n變大的時候,問題就不是那麼簡單了,現在小明需要你的幫助。

——輸入格式:

第一行是乙個正整數n (1 <= n <= 50000), 表示全排列的規模。

第二行是n個不同的數字pi(1 <= pi <= n), 表示這n個數字的某一全排列。

輸出格式:

乙個整數,表示不同連號區間的數目。

——樣例:

43 2 4 1

輸出:7

—————————————————————————————————————————————

題目的意思是給出的數列是這個數列的所有排列方式中的其中乙個,讓我們來找出在給出的這個數列中,有多少個能夠形成連號的子數列。

思路:如果區間內max - min == 區間長度說明這個區間是連續的。

解釋:區間內 max,min內的數字都是大於 min 小於 max 的,如果 max - min = 區間數就說明這寫數字布滿了區間,又因為是小於max大於min的,所以他們必須是連續的。

#include

using

namespace std;

int number[

50005];

int k;

intmain()

for(

int i =

1; i <= k; i++)}

cout << ans;

return0;

}

藍橋杯 連號區間數

問題描述 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間。當n很小的時候,小明可以很快地算出答案...

藍橋杯 連號區間數

問題描述 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間。當n很小的時候,小明可以很快地算出答案...

藍橋杯 連號區間數

峰值記憶體消耗 64m cpu消耗 5000ms 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間...