93. 递归实现组合型枚举

题目

93. 递归实现组合型枚举_第1张图片

思路

一个m个坑位,填n个数,就依次往里放就好了
同时判断一下升序,当前这个数比前一个数大就可以了

代码

#include 
using namespace std;
int n, m;
int ans[30];
int f[30]={0};
void dfs(int v)
{
	if (v > m) 
	{
		for (int i = 1; i <= m; i ++ )
		{
			cout << ans[i] << " ";
		}
		cout << endl;
		return;
	}
	for (int i = 1; i <= n; i ++ )
	{
		if (!f[i] && i > ans[v - 1])
		{
			f[i] =  1;
			ans[v] = i;
			dfs(v + 1);
			f[i] = 0;
			ans[v] = 0;
		}
		
	}
}
int main()
{
	cin >> n >> m;
	dfs(1);
	return 0;
 } 

你可能感兴趣的:(acwing蓝桥杯课,深度优先,算法,图论)