利用深度优先搜索的性质可以方便的生成n的排列和组合,但是生成组合时每个组合里面元素的个数必须事先确定,以前以为生成组合跟排列一样到n时就可以回溯,直到今天做了某题之后才发现那是错的,那样做生成不了所有的组合. 生成排列(默认是全排列,也可以传个参数生成n的k排列) #include<cstdio> #define MAXN 111 using namespace std; int tmp[MAXN],vis[MAXN],n,k; void dfs(int cnt,int num = n){ i…