测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70826. 摆动序列

编程题 基础

题目描述

如果一个序列满足下面的性质,我们就将它称为摆动序列:

  1. 序列中的所有数都是不大于 k 的正整数。

  2. 序列中至少有两个数。

  3. 序列中的数两两不相等。

  4. 如果第 i – 1 个数比第 i – 2 个数大,则第 i 个数比第 i – 2 个数小;如果第 i – 1 个数比第 i – 2 个数小,则第 i 个数比第 i – 2 个数大。

比如,当 k = 3 时,有下面几个这样的序列:

1 2
1 3
2 1
2 1 3
2 3
2 3 1
3 1
3 2

一共有 8 种,给定 k ,请求出满足上面要求的序列的个数。

输入格式

输入包含了一个整数 k 。(k \le 20

输出格式

输出一个整数,表示满足要求的序列个数。

输入输出样例

输入 #1
3
输出 #1
8

说明/提示

## 思路

「摆动序列」先读懂题意与样例,判断是模拟、枚举、贪心还是搜索/DP,再分步实现。

## 步骤

1. 仔细读输入输出与样例,确定数据范围。
2. 选择合适算法并处理边界。
3. 按格式输出,注意多组数据与精度。