逐位置尝试尚未使用的数字,递归后撤销标记。
每个叶子恰好选择了 n 个互不相同的数字,对应且只对应一个排列。
按照上述状态含义与转移顺序,每一步只使用已经正确求出的子问题;所有合法情况被完整计入,且互斥分类不会重复计数,因此最终输出即为题目所求。
尝试顺序必须从小到大;回溯时恢复 used。
完整标程见 std/main.cpp。
std/main.cpp
使用您的 星源智一OJ 通用账户