#6672. 相邻不连续的排列
相邻不连续的排列
题面:相邻不连续的排列
时间限制: 1 秒 内存限制: 256 MB
给定一个整数 n。
你需要把 1, 2, ..., n 这 n 个数排成一行,每个数恰好出现一次。
如果排列中任意两个相邻位置上的数,它们的差的绝对值都不等于 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 和较大答案 |
|