前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NYOJ 32 组合数(dfs递归)

NYOJ 32 组合数(dfs递归)

作者头像
Ch_Zaqdt
发布2019-01-10 11:11:45
3070
发布2019-01-10 11:11:45
举报
文章被收录于专栏:Zaqdt_ACMZaqdt_ACM

这就是一个dfs递归的思想,感觉不太好理解,自己动手模拟一下吧

AC代码:

代码语言:javascript
复制
#include <iostream>
#include <cstring>
using namespace std;
int temp[5050];
int num;

void dfs(int n,int m){
  for(int i=n;i>=1;i--){        // 从n开始从大到小递归
    temp[m] = i;       // 记录i
    if(m>1){           // 当记录的数不够m个时进行递归
      dfs(i-1,m-1);    // 下一层比上一层小1
    }
    else{              // 当已经记录的数够了m个时输出
      for(int i=num;i>=1;i--){
        cout<<temp[i];
      }
      cout<<endl;
    }
  }
}

int main()
{
  int n,m;
  while(cin>>n>>m){
    num = m;    // 标记个数
    dfs(n,m);
  }
  return 0;
}
/***
   [来源] NYOJ 32
   [题目] 组合数
   [思路]
      递归思想
   [输入]
      5 3
   [输出]
      543
      542
      541
      532
      531
      521
      432
      431
      421
      321
*/
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年02月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档