擅長排列的小明II

2021-07-02 01:08:49 字數 903 閱讀 1865

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

小明十分聰明,而且十分擅長排列計算。

有一天小明心血來潮想考考你,他給了你乙個正整數n,序列1,2,3,4,5......n滿足以下情況的排列:

1、第乙個數必須是1

2、相鄰兩個數之差不大於2

你的任務是給出排列的種數。

輸入

多組資料。每組資料中輸入乙個正整數n(n<=55).

輸出輸出種數。

樣例輸入

4

樣例輸出

4

規律:下次遇到類似的可能還是不會,這種**的  哎!!!

第i個數用ai表示

由於a1一直是1,所以a2只能是2或3。

1.當a2=2時,從a2到an的排列(2~n)相當於從a1到an-1的排列(1~n-1)(把每個數字都加1),一共有f[n-1]種情況。

2.當a2=3時,a3可能為2,4,5。

當a3=2時,a4一定等於4,此時從a4到an的排列(4~n)相當於從a1到an-3的排列(把每個數字都加3),一共有f[n-3]種情況。

當a3=4時,不管a4取不取2,都不能形成滿足題意的排列,故此種情況不可能發生。

當a3=5時,排列只可能是1 ,3, 5,7,9......10,8,6,4,2,所以一共有1種情況。

dp[i]=dp[i-3]+dp[i-1]+1;

code:

#include#include#include#includeusing namespace std;

int dp[60];

int main()

return 0;

}

擅長排列的小明 II

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 小明十分聰明,而且十分擅長排列計算。有一天小明心血來潮想考考你,他給了你乙個正整數n,序列1,2,3,4,5.n滿足以下情況的排列 1 第乙個數必須是1 2 相鄰兩個數之差不大於2 你的任務是給出排列的種數。輸入 多組資料。每組...

擅長排列的小明

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1 5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排列的小明到底對...

擅長排列的小明

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1 5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排列的小明到底對...