資源限制
時間限制:1.0s 記憶體限制:512.0mb
問題描述
如果乙個序列滿足下面的性質,我們就將它稱為擺動序列:
1. 序列中的所有數都是不大於k的正整數;
2. 序列中至少有兩個數。
3. 序列中的數兩兩不相等;
4. 如果第i – 1個數比第i – 2個數大,則第i個數比第i – 2個數小;如果第i – 1個數比第i – 2個數小,則第i個數比第i – 2個數大。
比如,當k = 3時,有下面幾個這樣的序列:
1 21 3
2 12 1 3
2 32 3 1
3 13 2
一共有8種,給定k,請求出滿足上面要求的序列的個數。
輸入格式
輸入包含了乙個整數k。(k<=20)
輸出格式
輸出乙個整數,表示滿足要求的序列個數。
樣例輸入
3樣例輸出
8思路:分析題目之後發現,有點像排列組合,經過試驗發現有下面規律:
2 3 4 5 6 7 8 //這一行是k的取值
2 2 //k=2的時候,只有是兩位數的可能,也就是兩個
3 6 2 //k=3的時候,有兩位數和三位數的可能,結果就是他們的和
4 12 8 2
5 20 20 10 2
6 30 40 30 12 2
7 42 70 70 42 14 2
8 56 112 140 112 56 16 2
**如下:
#includeusing namespace std;
int main()
}for(i = 2; i <= k; i++)
cout << sum << endl;
return 0;
}
演算法訓練 擺動序列
問題描述 如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 1.序列中的所有數都是不大於k的正整數 2.序列中至少有兩個數。3.序列中的數兩兩不相等 4.如果第i 1個數比第i 2個數大,則第i個數比第i 2個數小 如果第i 1個數比第i 2個數小,則第i個數比第i 2個數大。比如,當k 3時,有...
演算法訓練 擺動序列
演算法訓練 擺動序列 時間限制 1.0s 記憶體限制 512.0mb 問題描述 如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 1.序列中的所有數都是不大於 k的正整數 2.序列中至少有兩個數。3.序列中的數兩兩不相等 4.如果第 i 1個數比第 i 2個數大,則第 i個數比第 i 2個數小 如...
演算法訓練 擺動序列
演算法訓練 擺動序列 時間限制 1.0s 記憶體限制 512.0mb 問題描述 如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 1.序列中的所有數都是不大於k的正整數 2.序列中至少有兩個數。3.序列中的數兩兩不相等 4.如果第i 1個數比第i 2個數大,則第i個數比第i 2個數小 如果第i 1...