#6672. 相邻不连续的排列

相邻不连续的排列

题面:相邻不连续的排列

时间限制: 1 秒 内存限制: 256 MB

给定一个整数 n

你需要把 1, 2, ..., nn 个数排成一行,每个数恰好出现一次。

如果排列中任意两个相邻位置上的数,它们的差的绝对值都不等于 1,那么这个排列就是合法的。

请你计算一共有多少个合法排列。

输入格式

输入一行,包含一个整数 n

输出格式

输出一个整数,表示合法排列的数量。

数据范围

1 <= n <= 10

样例

输入

4

输出

2

说明

n = 4 时,合法排列有:

2 4 1 3
3 1 4 2

所以答案为 2

测试点说明表

测试点编号 n ≤ 特殊性质 设计目的
1 最小规模 只有一个数,必然合法
2 无解小规模 两个数相邻差一定为 1
3 原程序规模 验证 n = 3 时答案为 0
4 首个有解规模 检查基础 DFS 排列枚举
5 小规模普通数据 覆盖多种合法排列
6 中等规模 检查剪枝和回溯正确性
7 中等偏大 覆盖答案增长情况
8 较大规模 覆盖较多排列分支
9 大规模 接近 DFS 枚举上限
10 极限规模 覆盖最大 n 和较大答案