[Tyvj Jan]青蛙跳荷葉
阿新 • • 發佈:2018-07-15
print space 簡單 mark 打表 之間 reg 一行 int
使得
1:a1=1
2:對於任意的i<>j(1<=i,j<=n-1),有|ai-a(i+1)|<>|aj-a(j+1)|
其中n是給定的
題目限制
時間限制 | 內存限制 | 評測方式 | 題目來源 |
1000ms | 131072KiB | 標準比較器 | Local |
題目描述
從前,有一個小青蛙決定去荷葉上練習跳躍.
現在有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個數,用一個空格隔開,末尾沒有多余空格
提示
數據範圍:
對於20%的數據,1<n<=4
對於100%的數據,1<n<=10000西部314 TYVJ首屆月賽 第一道
樣例數據
輸入樣例 #1 | 輸出樣例 #1 |
---|---|
3 |
1 3 2 |
打表出規律...普及水題
#include <iostream> #include <cstdio> using namespace std; int n; int a; bool vis[10005]; int main() { scanf("%d", &n); a = 1; printf("%d ", a); for (register int i = 2 ; i <= n ; i ++) { if (i % 2 == 0) a = a + (n - i + 1); else a = a - (n - i + 1); printf("%d ", a); } return 0; }
[Tyvj Jan]青蛙跳荷葉