排列组合问题模板(C/C++)(DFS)
目录
1 n个数参与n层全排列
2 n个数参与m层全排列(n>=m)
3 前n个数的所有组合
1 n个数参与n层全排列
#include <bits/stdc++.h>
using namespace std;int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
bool vis[20];
int b[20];
int n;
void dfs(int s)
{if(s==n){for(int i=0;i<n;i++){cout<<b[i]<<' ';}cout<<endl;return;}for(int i=0;i<n;i++){if(!vis[i]){vis[i]=true;b[s]=a[i];dfs(s+1);vis[i]=false;}}return;
}int main()
{cin>>n;dfs(0);return 0;
}
2 n个数参与m层全排列(n>=m)
#include <bits/stdc++.h>
using namespace std;
bool vis[20];
int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int b[20];
int step;
void dfs(int s,int step)
{if(s==step){for(int i=0;i<step;i++){printf("%d ",b[i]);}printf("\n");return;}for(int i=0;i<20;i++){if(!vis[i]){vis[i]=true;b[s]=a[i];dfs(s+1,step);vis[i]=false;}}
}int main()
{scanf("%d",&step);dfs(0,step);return 0;
}
3 前n个数的所有组合
#include <bits/stdc++.h>
using namespace std;
bool vis[20];
int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int step,i;
void dfs(int s,int step)
{if(s==step){for(int i=0;i<step;i++){if(vis[i]) printf("%d ",a[i]);}printf("\n");return;}else{vis[s]=true;dfs(s+1,step);vis[s]=false;dfs(s+1,step);}
}int main()
{scanf("%d",&step);dfs(0,step);return 0;
}
排列组合问题模板(C/C++)(DFS)相关推荐
- 【一级讲解】不可思议唤来不可思议β——数学排列组合
不可思议唤来不可思议β Time Limit: 1 Sec Memory Limit: 128 MB Description In the world line 1.048596% 双叶理央因为&qu ...
- 前端电商 SKU 的全排列算法很难吗?学会这个套路,彻底掌握排列组合。
前言 前段时间在掘金看到一个热帖 <今天又懒得加班了,能写出这两个算法吗?带你去电商公司写商品中心>,里面提到了一个比较有意思故事,大意就是一个看似比较简单的电商 sku 的全排列组合算法 ...
- DFS算法模板-排列组合-python
DFS算法模板: def dfs(array or root, cur_layer, path, result):if cur_layer == len(array) or not root:resu ...
- Codeforces 991E. Bus Number (DFS+排列组合)
解题思路 将每个数字出现的次数存在一个数组num[]中(与顺序无关). 将出现过的数字i从1到num[i]遍历.(i from 0 to 9) 得到要使用的数字次数数组a[]. 对于每一种a使用排列组 ...
- java dfs_Java数据结构与算法 深搜(DFS)的简单使用(一)之排列组合
今天,我们来简单介绍一下深度优先搜索(DFS)的概念和使用. 在百度词条中,对深搜的解释是这样的. 百度词条中的解释 由此,我们可知,深搜是广泛运用到 图 中的搜索方法之一. 用深度优先搜索遍历图的基 ...
- 【算法】蓝桥杯dfs深度优先搜索之排列组合总结
[导航] 上一篇文章 → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结> 为了重申感谢之意,再次声明下文的大部分灵感均来自于[CSDN]梅森上校<JAVA版本:DFS算法题解两 ...
- 蓝桥杯 笔记整理【JavaB组省赛真题、约数、全排列模板、排列组合、等差等比求和公式、eclipse快捷键、集合、快速求a^n、进制转换(Integer、BigInteger)、动态数组Vector】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 小白学算法:DFS排列组合问题
准备: 一些用语及事项的说明,方便大家理解. 1.数组从一号索引开始用,不用0号索引. 2.dfs递归零次时称为深度1,递归一次称为深度2,以此类推. 3.每个深度dfs要进行一些操作,统称某深度运算 ...
- 无重复字符串的排列组合
无重复字符串的排列组合.编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同. 示例1: 输入:S = "qwe" 输出:["qwe", " ...
最新文章
- 【复杂系统迁移 .NET Core平台系列】之界面层
- 20145315 《信息安全系统设计基础》第14周学习总结
- java dib文件 加位图文件头_位图(bmp)文件格式分析
- CodeForces 468 CHack it!
- boost::bind with ros topic,ros中subscribe用boost::bind绑定多个参数
- 1011 A+B 和 C (15 分)—PAT (Basic Level) Practice (中文)
- area标签高亮_HTML的所有标签列表
- 《数据分析思维手册》和《数据分析师的职场真相》全集整理好啦,下载保存!...
- 感知机(Perceptron)-《统计学习方法》例题对偶形式手算全过程
- html站点根目录在哪里,域名根目录在哪里
- mysql hint 驱动_MySQL HINT:Straight_JOIN
- Ng-Alain 菜单图标引入iconfront 版本9.5.5
- 鸿蒙1号6年级数学答案,一些常用的数学公式
- wiki维基百科各种语料数据下载
- 块、内联、内联块都有哪些及其特点
- hashmap!hashmap
- 什么是网站备案?如何查询网站是否备案?
- QQ2011 Beta3优先体验(附官方体验地址及下载地址)
- 青年人在美团是怎样成长的?
- 这三款手机视频拼接软件,可以帮你把视频拼出高级感