递归打印组合数搜索模板

Posted X-man

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归打印组合数搜索模板相关的知识,希望对你有一定的参考价值。

 

  1. //从后往前选取,选定位置i后,再在前i-1个里面选取m-1个。  
  2. //如 1 2 3 4 5 中选取 3 个  
  3. //1、选取5后,再在前4个里面选取2个,而前4个里面选取2个又是一个子问题,递归即可。  
  4. //2、如果不包含5,直接选定4,那么再在前3个里面选取2个,而前三个里面选取2个又是一个子问题,递归即可。  
  5. //3、如果也不包含4,直接选取3,那么再在前2个里面选取2个,刚好只有两个。  
  6. //纵向看,1、2、3刚好是一个for循环,初值为5,终值为m  
  7. //横向看,该问题为一个前i-1个中选m-1的递归。  
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
# define MAXN 100
int a[MAXN];
void comb(int m, int k)
{
    int i, j;
    if(k<1)
    {
        for (j=a[0]; j>0; j--)//a[a[0]],……,a[1]
                printf("%4d",a[j]);
        printf("\n");
        return ;
    }
    for (i = m; i >= k; i--)
    {
        a[k] = i;
        comb(i - 1, k - 1);
    }
}
int main()
{
    int k=4;
    int m=5;
    a[0] = k;
    comb(m,k);//a[0]保持输出的个数
    return 0;
}

 迷宫搜索类题目模板

 

以上是关于递归打印组合数搜索模板的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中使用递归打印字符串的所有组合

搜索问题

搜索技术——子集生成和组合问题

算法学习——递归和排列组合

快速排序模板秦九昭算法模板深度优先搜索DFS广度优先搜索BFS图的遍历逆元中国剩余定理斯特林公式

递推递归组合数,汉诺塔,回文数问题(java)