组合型枚举

0.简介

Cmn

1.代码模板

#include<bits/stdc++.h>
using namespace std;
int n, m;
vector<int> chosen;

// x为当前选择的位, n-x+1为剩余可以选择的数量 
void DFS(int x) {
	if(chosen.size() > m || chosen.size() + (n - x + 1) < m) {
		return;
	}

	// 选满了m 个数
	if(x == n + 1) {
		for(int num : chosen) {
			cout << num << " ";
		}
		cout << endl;
		return;
	}

	// 选择当前值
	chosen.push_back(x);
	DFS(x+1);
	// 不选择当前值
	chosen.pop_back();
	DFS(x+1);

}
int main() {
	cin >> n >> m;
	DFS(1);
	return 0;
}
posted @   DawnTraveler  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示