回溯排列数组合数完全解答

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了回溯排列数组合数完全解答脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
//全排列数->部分排列数->///(部分)组合数:好像不对///
//myprint->取全排列前n个->部分排列数基础上加上单调验证
#include <iostream>
#include <vector>
#include <stack>
#include <set>
#include <string>
#include <algorithm>
using namespace std;
void myprint(vector<int> &a,int i) {
	if (i == a.size() - 1) {
		for (int i = 0; i < 3;i++) {
			cout << a[i] << ',';
		}
		cout << endl;
		//return;
	}
	else {
		for (int k = i; k < a.size();k++) {
			swap(a[k], a[i]);
			myprint(a, i + 1);
			swap(a[k], a[i]);
		}	
	}
}
===================================================================================================================
//此程序为标准组合数
void fun(vector<vector<int>>& ans, vector<int>& tmp,int index,int k,int n) {
    if (tmp.size() == k) {
        ans.push_back(tmp);
        return;
    }
    for (int i = index; i < n;i++) {
        tmp.push_back(i+1);
        fun(ans, tmp, i+1, k, n);
        tmp.pop_back();
    }
}
vector<vector<int>> combine(int n, int k) {
    vector<vector<int>> ans;
    vector<int> tmp;
    fun(ans, tmp, 0,k,n);
    return ans;
}

脚本宝典总结

以上是脚本宝典为你收集整理的回溯排列数组合数完全解答全部内容,希望文章能够帮你解决回溯排列数组合数完全解答所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: