藍橋杯 連號區間數

2021-09-29 16:23:15 字數 500 閱讀 2489

描述

分析

寫這題的時候好像還是去年…

最基礎的思路肯定是暴力法,另外要考慮到每個元素本身也是乙個連號區間,所以連號區間數最少為 n 個。

後來看了別人的做法,發現自己並沒有很好的利用每個數均唯一的特點。

如果乙個區間內的所有數經過排序後連號,那麼必有:

此區間內的最大值 - 此區間內最小值 = 區間長度

因此問題便迎刃而解了。

**

#include

#include

#define maxn 50005

using

namespace std;

int a[maxn]

;int

main()

} cout << cnt << endl;

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的 連續 數列,則稱這個區間連號區間...