演算法訓練
擺動序列
時間限制: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//一開始此題我是主函式用了乙個for迴圈,確定每個方案的個數,子函式用了乙個來安放數字,還是沒有理解dfs的精髓。。。
#include
#include
int k,a[25],book[25],ans;
int check(int j,int i)
void dfs(int step)
dfs(step+1);
book[i]=0;
}
}
return;
}
int main()
演算法訓練 擺動序列
問題描述 如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 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個數比第i ...