有没有大佬帮忙解下此题?求速
  • 板块学术版
  • 楼主Xx18866269526
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/2/12 19:57
  • 上次更新2023/10/24 00:56:47
查看原帖
有没有大佬帮忙解下此题?求速
942549
Xx18866269526楼主2023/2/12 19:57

一、实验目标 从1到n中,任意选出m个数的所有排列,计算出方案数。 输入格式: 两个整数n和m 输出格式: 输出每一种方案以及方案数 输入样例:4 3 输出样例: 1 2 3 1 2 4 1 3 2 1 3 4 1 4 2 1 4 3 2 1 3 2 1 4 2 3 1 2 3 4 2 4 1 2 4 3 3 1 2 3 1 4 3 2 1 3 2 4 3 4 1 3 4 2 4 1 2 4 1 3 4 2 1 4 2 3 4 3 1 4 3 2 24 数据范围:1<=m<=n<=20 二、分析 1、搜索的要素 解: 用t计算层数,当t>m时即表示一个解,此时可输出方案,计数递增。 每层选择的数,存储到a[]数组里,输出方案时使用。 状态:每层都循环1..n选择 剪枝条件:上面层次走过的,不重复,用to[]数组来标记 回溯: * 当某个下级层次的调用完成回到上一层时,要清除上级层次设置的to[]标记。 * t层数的清除:利用函数调用不会影响入参的机制,自动清除。 三、实验步骤 数据定义与输入 实现search(t)函数 当t>m时,输出一个方案并计数 循环本层的选择,可行就递归调用search(t+1) main调用search函数,输出计数

2023/2/12 19:57
加载中...