题目描述:
有n个物品编号为1-n,现将其重新排列,但要求相邻两物品的编号差值的绝对值不等于1,按字典序输出所有满足要求的方案。
输入描述:
每组输入一个整数n,1<=n<=10;
输出描述:
对于每组测试数据:按照字典序输出满足要求的序列,若没有满足的,不用输出任何东西。
示例:
输入:4
输出:
2 4 1 3
3 1 4 2
思路:利用全排列的思想,先进行全排列,当存在相邻两数的差值为1时即为不满足条件的排序。去除不满足条件的排序即可。
#include<cstdio>
#include<cmath>
const int maxn=11;
int n,P[maxn],hashTable[maxn]={
false};
//当前处理排列的第index号位