歷屆試題 連號區間數
時間限制:1.0s 記憶體限制:256.0mb
問題描述
小明這些天一直在思考這樣乙個奇怪而有趣的問題:
在1~n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是:
如果區間[l, r] 裡的所有元素(即此排列的第l個到第r個元素)遞增排序後能得到乙個長度為r-l+1的「連續」數列,則稱這個區間連號區間。
當n很小的時候,小明可以很快地算出答案,但是當n變大的時候,問題就不是那麼簡單了,現在小明需要你的幫助。
輸入格式
第一行是乙個正整數n (1 <= n <= 50000), 表示全排列的規模。
第二行是n個不同的數字pi(1 <= pi <= n), 表示這n個數字的某一全排列。
輸出格式
輸出乙個整數,表示不同連號區間的數目。
樣例輸入1 4
3 2 4 1
樣例輸出1 7
樣例輸入2 5
3 4 2 5 1
樣例輸出2 9
題解:規律,全排列的不同連號區間的數目,全排列,找連號區間,即為mx-mi==j-i;
**:
#include#include#include#include#include#includeusing namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
#define si(x) scanf("%d",&x)
#define pi(x) printf("%d",x)
#define p_ printf(" ")
const int inf=0x3f3f3f3f;
const int maxn=50010;
typedef long long ll;
int p[maxn];
int main()
} printf("%d\n",ans);
} return 0;
}
藍橋杯 連號區間數(找規律)
問題描述 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間。當n很小的時候,小明可以很快地算出答案...
藍橋杯 連號區間數
問題描述 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間。當n很小的時候,小明可以很快地算出答案...
藍橋杯 連號區間數
問題描述 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1的 連續 數列,則稱這個區間連號區間。當n很小的時候,小明可以很快地算出答案...