從前,有乙個小青蛙決定去荷葉上練習跳躍.現在有n個荷葉排成一排,小青蛙一開始在最左邊的荷葉(一號荷葉)上,當然,這個青蛙是很牛x的,可以在任意兩個荷葉之間跳躍。
有一天這個青蛙突發奇想,想用一種奇怪的方式完成跳躍練習:
1.它希望每次跳到不同的荷葉上
2.每一次跳的距離不同
當然,作出這個決定是何其的簡單,但是跳躍方式是何其的困難……,所以他希望你可以幫他解決這個問題.
下面給出這個問題嚴格的數學定義,請給出1到n這n個自然數的乙個排列a1,a2,a3……an
使得1:a1=1
2:對於任意的i<>j(1<=i,j<=n-1),有|ai-a(i+1)|<>|aj-a(j+1)|,其中n是給定的
一行,乙個數n
一行,n個數,用乙個空格隔開,末尾沒有多餘空格
輸入樣例
3
輸出樣例1 3 2
資料範圍:
對於20%的資料,1< n <=4
對於100%的資料,1< n <=10000
原本是不會的
還瞎寫了乙個20
2020
分t le
tletl
e的df
sdfs
dfs
#include
#include
#include
#include
using
namespace std;
bool flag,b[
10005][
2];int f[
20005
],n;
void
dfs(
int k)
for(
int i=
2;i<=n;
++i)if(
!b[abs
(i-f[k-1]
)][0
]&&!b[i][1
])}int
main()
沒有思路
莫名就想到了
其實數列就是1、n
、2、n
−1、3
、n−2
……
1、n、2、n-1、3、n-2……
1、n、2、
n−1、
3、n−
2……
#include
#include
using
namespace std;
int n,t;
intmain()
青蛙跳台問題
1 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。分析 要麼從倒數第二階跳上去,要麼從倒數第三階跳上去.2 乙隻青蛙一次可以跳上1級台階,也可以跳上2 級 它也可以跳上n 級,此時該青蛙跳上乙個n級的台階總共有多少種跳法?用fib n 表示青蛙跳上...
青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1 如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 2 假定第一次跳的是2階,那麼剩下的是n 2個台階,跳法是f n 2 3 總跳法為 f n f n...
青蛙跳台階
之前面試遇到了這種題目,不會,後來搜尋了一下,感覺分析的很好 青蛙跳乙個n階的台階,每次可以跳1階或者2階,求跳完n階y有多少種方法。分析 n 1,f n 1 n 2,f n 2 n 3,f n 3 n 4,f n 5 可以發現 f n f n 1 f n 2 由此也可以推想 比如要跳到第4階樓梯上...