当前位置: 首页 > article >正文

深搜专题2:组合问题

描述

组合问题就是从n个元素中抽出r个元素(不分顺序且r < = n),

我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。

例如n = 5 ,r = 3 ,所有组合为:

1 2 3

1 2 4

1 2 5

1 3 4

1 3 5

1 4 5

2 3 4

2 3 5

2 4 5

3 4 5

输入描述

一行两个自然数n、r ( 1 < n < 21,1 < = r < = n )。

输出描述

所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,所有的组合也按字典顺序。

字典顺序及从小到大。

学会去重即可。

#include <bits/stdc++.h>
using namespace std;
int n,r;
int s[10];
int vis[10];
void dfs(int x,int len){//加入起点传参
    if(len==r+1){//现在不是全排列
        for(int i=1;i<=r;i++){
            cout<<s[i]<<" ";
        }
        cout<<endl;
        return;
    }
    for(int i=x;i<=n;i++){
        if(!vis[i]){
            s[len]=i;
            vis[i]=1;
            dfs(i,len+1);//传入新起点
            vis[i]=0;
        }
    }
}
int main(){
    cin>>n>>r;
    dfs(1,1);
    return 0;
}


http://www.kler.cn/a/562378.html

相关文章:

  • 易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述
  • 使用Python爬虫获取孔夫子旧书网已售商品数据:调用item_search_sold接口
  • SmartDV借助AI新动能以定制IP和生态合作推动AI SoC等全新智能芯片的研发及产业化
  • WordPress平台如何接入Deepseek,有效提升网站流量
  • Android NDK 集成调用第三方SO库(标准SO库和非标准SO库)
  • java23种设计模式-工厂方法模式
  • 《Flink学习攻略:从入门到进阶的奇妙之旅》
  • MySQL 中表和视图的关系
  • 2025年2月最新SCI-中华穿山甲优化算法Chinese Pangolin Optimizer-附Matlab免费代码
  • P8665 [蓝桥杯 2018 省 A] 航班时间
  • Android开发奇葩bug:布局宽高不自动自适应了
  • 显式指定 ChromeDriver 路径
  • python安装matplotlib库报错
  • 分布式锁实现(数据库+Redis+Zookeeper)
  • ref和reactive的区别 Vue3
  • 好用的Docker项目:本地部署IOPaint打造专属在线图片处理工作站
  • 京东web 详情 cfe滑块分析
  • 【Elasticsearch】同一台服务器部署集群
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(三) 实现注册 登录接口
  • HarmonyOS学习第7天: 文本组件点亮界面的文字魔法棒