114


私信TA

用户名:QQAS

访问量:142

签 名:

514

等  级
排  名 6462
经  验 1419
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 海陵学校
专  业

  自我简介:

1919810

TA的其他文章

QQAS的全排列
浏览:70

解题思路 1、枚举方案数

               2、标记数组来判断元素是否取过 

               3、搜索当前层 //保存元素注意事项:
               4、进入下一层参考代码

               5、回溯,还原相关状态

               6、终止条件+处理数据

               7、打印优化


#include <bits/stdc++.h>

using namespace std;

char a[1001];

int b[1001],c[1001],tot;

void dfs(int dep){

   for(int i=0;i<tot;i++)

       if(c[i]==0){

           b[dep]=i;

           c[i]=1;

            dfs(dep+1);

           c[i]=0;

       }

   if(dep==tot-1){

       for(int i=0;i<tot;i++)

           cout<<a[b[i]];

       cout<<endl;

   }

   return;

}

int main()

{

   cin>>a;

   tot=strlen(a);

    dfs(0);

   return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »