#12058. 整除的排列

整除的排列

当前没有测试数据。

✅Day3:整除的排列


题目描述

构造一个从11NN的排列,使得该排列中任意相邻两个数的和都能被3整除


输入格式

一个整数NN1N10001 \leq N \leq 1000


输出格式

输出一行共NN个整数,表示满足条件的排列; 如果不存在这样的排列,输出-1


输入样例

4

输出样例

1236

构造提示

*可以暴力从1~N尝试排列,判断相邻两个数之和是否能被3整除; *建议使用DFS/回溯构造排列,增加剪枝逻辑提升效率; *若使用C++可结合next_permutation遍历所有排列; *注意:不是所有N都有合法解,需判定。


推荐练习方向

*练习回溯法/DFS的剪枝设计; *使用std::next_permutation构造排列并筛选; *可加入“统计所有解的个数”、“输出字典序最小的解”等进阶版本。