AcWing 93. 递归实现组合型枚举

AcWing 93. 递归实现组合型枚举,第1张

知识点:递归

这个题是组合型枚举,时间复杂度是从n个数里面选m个,然后它是由上一个指数型枚举剪枝得来的,并且它的题目要求需要字典序最小的答案,

#include 

using namespace std;

int n, m;
vector v;

void solve(int x) {
	if (v.size() > m || v.size() + n - x + 1 < m) return;
	if (x == n + 1) {
		for (int i = 0; i < v.size(); i++) {
			cout << v[i] << " ";
		}
		cout << endl;
		return;
	}
	v.push_back(x);
	solve(x + 1);
	v.pop_back();
	solve(x + 1);
}

int main() {
	cin >> n >> m;
	solve(1);
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2889665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-14
下一篇 2022-09-14

发表评论

登录后才能评论

评论列表(0条)

保存