藍橋杯 擺動序列

2021-08-01 15:52:43 字數 944 閱讀 6221

題目:

問題描述

如果乙個序列滿足下面的性質,我們就將它稱為擺動序列:

1. 序列中的所有數都是不大於k的正整數;

2. 序列中至少有兩個數。

3. 序列中的數兩兩不相等;

4. 如果第i – 1個數比第i – 2個數大,則第i個數比第i – 2個數小;如果第i – 1個數比第i – 2個數小,則第i個數比第i – 2個數大。

比如,當k = 3時,有下面幾個這樣的序列:

1 2

1 3

2 1

2 1 3

2 3

2 3 1

3 1

3 2

一共有8種,給定k,請求出滿足上面要求的序列的個數。

輸入格式

輸入包含了乙個整數k。(k<=20)

輸出格式

輸出乙個整數,表示滿足要求的序列個數。

樣例輸入

3 樣例輸出

8題解:

dp(i,j,k)表示長度為i,倒數第二位為j,倒數第一位為k的序列的個數。

狀態轉移方程自己想吧。

#include

#include

#include

#include

using

namespace

std;

int dp[30][30][30];

int vis[27000][30] ;

int main()

if(kfor(int t=j+1;t<=k;t++) dp[i+1][k][t]+=dp[i][j][k],ans+=dp[i+1][k][t];}}

}// coutint i,j,k;

for(i=2;i<=k;i++)}}

cout

<}

}

藍橋杯 擺動序列 df

include include int a 100 擺動陣列 int vis 100 int k int ans bool judge int x,int index void dfs int count int main 問題描述 如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 1.序列中的所...

藍橋杯 演算法訓練 擺動序列

演算法訓練 擺動序列 時間限制 1.0s 記憶體限制 512.0mb 提交此題 錦囊1 錦囊2 問題描述 如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 1.序列中的所有數都是不大於k的正整數 2.序列中至少有兩個數。3.序列中的數兩兩不相等 4.如果第i 1個數比第i 2個數大,則第i個數比第...

藍橋杯模擬題 擺動序列

問題描述 如果乙個序列的奇數項都比前一項大,偶數項都比前一項小,則稱為乙個擺動序列。即 a 2i a 2i 小明想知道,長度為 m,每個數都是 1 到 n 之間的正整數的擺動序列一共有多少個。輸入3 4 輸出14 include using namespace std int a 1010 1010...