对一下两串代码进行降重1.#include<bits/stdc++.h> using namespace std; int n; int book[11],a[11]={0}; void dfs(int bushu) { if(bushu==n+1) { for(int i=1;i<=n;i++) cout<<a[i]; cout<<endl;return;} for(int i=1;i<=n;i++) { if(book[i]==0) { a[bushu]=i; book[i]=1; dfs(bushu+1); book[i]=0;} } return; } int main() { cin>>n; dfs(1); }
时间: 2023-06-26 11:02:13 浏览: 96
c++万能头文件(包含所有其他头文件)#include<bits/stdc++.h> 注:此cpp文件包含万能头文件以及基本框架
5星 · 资源好评率100%
这是一个输出1~n的全排列的程序,使用深度优先搜索实现。
2.#include<bits/stdc++.h> using namespace std; const int N=55; char st[N],ans[N]; int n; bool vis[N]; void dfs(int u) { if(u>n) { puts(ans+1);return;} for(int i=1;i<=n;i++) { if(!vis[i]) { ans[u]=st[i]; vis[i]=1; dfs(u+1); vis[i]=0; } } } int main() { cin>>st+1; n=strlen(st+1); sort(st+1,st+n+1); dfs(1); }
这个程序是输出字符串s的全排列,使用深度优先搜索实现。
两个程序实现的功能相似,但是使用了不同的方法,代码结构也不同。
阅读全文