NEO:Curi:aos 2022-11-05 22:30 采纳率: 0%
浏览 33

c++基于回溯法的全排列问题的怎么优化

问题遇到的现象和发生背景

7-1 排列问题(*)
从 m (0<m≤26) 个大写字母中任意选出 n (0<n≤m) 个字母排成一行,一共有多少种排列?

请编写程序,输入 m 和 n,输出从 A 开始的连续 m 个字母中任取 n 个字母的所有排列。

要求:每行输出一个排列,按字典序输出。
输入样例
3 2
输出样例
AB
AC
BA
BC
CA
CB

问题:用回溯法解决该问题有一个测试点超时,不知道怎么优化

用代码块功能插入代码,请勿粘贴截图
#include <iostream>
using namespace std;
#define Max 30
int perm[Max];
bool used[Max];
void allsort(int pos,int n,int m){
    if(pos==n)//pos与n相同输出打印组合
    {
        for (int i = 0; i < n; ++i) {
            cout<<(char)(perm[i]+'A');
        }
       cout<<endl;
        return;
    }
    else{
        for (int i = 0; i < m; ++i) {
        if(!used[i])
        {
            perm[pos]=i;
            used[i]= true;
            allsort(pos+1,n,m);
            used[i]= false;
        }
       }
    }
    
 
}
int main() {
    int n,m;
    cin>>m>>n;
    allsort(0,n,m);
    return 0;
}


运行结果及报错内容

img

  • 写回答

1条回答 默认 最新

  • 扑天鹰 2023-03-07 07:34
    关注

    我在博客中写过,在零基础冲国赛的第二十天

    评论

报告相同问题?

问题事件

  • 创建了问题 11月5日

悬赏问题

  • ¥50 VS2019,xamarin框架串口调试报错Java.Lang.SecurityException: Exception of type
  • ¥20 QT如何判断QLineF线鼠标划过事件
  • ¥15 关于#phpstorm#的问题:phpstorm编辑工具 光标选中了就会自动复制到粘贴板上 这样我之前复制的内容就失效了
  • ¥15 pychram安装jupyter插件
  • ¥60 悬赏破解越狱iphone4s中360保险箱密码遗忘
  • ¥20 ARKts悬浮窗和快捷方式问题
  • ¥15 linux中nginx服务器提示not found on accelerator,如何解决?(语言-php|操作系统-linux)
  • ¥15 comparecluster没有办法kegg
  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例