题目1120:全排列(回溯法)
题目链接:http://ac.jobdu.com/problem.php?pid=1120
详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus
参考代码:
// // 1120 全排列.cpp // Jobdu // // Created by PengFei_Zheng on 23/04/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. // #include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #include <cmath> #define MAX_SIZE 7 using namespace std; char str[MAX_SIZE]; char ans[MAX_SIZE]; bool used[MAX_SIZE]; int len; void prem(int x){ if(x == len){ ans[x]='\0'; printf("%s\n",ans); return; } for(int i = 0 ; i < len ; i++){ if(!used[i]){ used[i] = true; ans[x] = str[i]; prem(x+1); used[i]=false; } } } int main(){ while(scanf("%s",str)!=EOF){ memset(used,false,sizeof(used)); len = (int)strlen(str); prem(0); printf("\n"); } return 0; } /************************************************************** Problem: 1120 User: zpfbuaa Language: C++ Result: Accepted Time:440 ms Memory:1520 kb ****************************************************************/
作者: 伊甸一点
出处: http://www.cnblogs.com/zpfbuaa/
本文版权归作者伊甸一点所有,欢迎转载和商用(须保留此段声明),且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文链接 如有问题, 可邮件(zpflyfe@163.com)咨询.