珂以来帮帮吗
  • 板块学术版
  • 楼主Nostopathy
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/5/21 17:38
  • 上次更新2024/5/21 20:24:35
查看原帖
珂以来帮帮吗
1286053
Nostopathy楼主2024/5/21 17:38

给定一个长度为n的数组,从中任意选择m个数,注意每个数可以选择多次,而且保证输入的n个元素完全不同,比如1 2 3 和 3 2 1 算是两种情况,按字典序输出所有的情况。

#include<bits/stdc++.h>
using namespace std;
vector<int>l;
vector<int>a;
vector<int>b(8088);
int n, t;
void dfs(int id){
	if(id==t){
		for(int i=0; i<a.size(); ++i) cout<<a[i]<<' ';
		cout<<'\n'; return;
	}
	for(int i=0; i<n; ++i){
		if(b[l[i]]==0){
			a.push_back(l[i]); b[l[i]]=1;
			dfs(id+1);
			b[l[i]]=0; a.pop_back();
		}
	}
}
int main(){
	cin>>n>>t;
	for(int i=0; i<n; ++i) {int x; cin>>x; l.push_back(x);}
	stable_sort(l.begin(), l.end());
	dfs(0);
}
2024/5/21 17:38
加载中...