全排列和组合数区分

全排列传送门
组合数传送门

共同点:

  • 都是dfs深搜
  • 区别点在于组合数要去重 在dfs函数中加一个条件参数
cpp 复制代码
bool num[23];//判断重复数组
int ans[23];//返回结果数组
//组合数给定参数n和长度k的组合'
int k,n;
dfs(int deep,int last)
{
	if(deep>k){
		for(int i=1;i<=k;i++) cout<<res<<" ";
		cout<<endl;
		return;
	}
	for(int i=1;i<=n;i++){
		if(num[i]==false&&i>last){//全排列是没有i>last的
			num[i]=true;
			ans[deep]=i;//存值
			dfs(deep+1,i);
			num[i]]=false;//回溯
		}
	}
}
int main(
{	
cin>>n>>k;
dfs(1,0);
return 0;
}
相关推荐
啦啦啦!2 分钟前
c++AI大模型接入SDK项目
开发语言·数据结构·c++·人工智能·算法
lcj25115 分钟前
【C语言】自定义类型1:结构体
c语言·开发语言·算法
jaysee-sjc8 分钟前
十七、Java 高级技术入门全解:JUnit、反射、注解、动态代理
java·开发语言·算法·junit·intellij-idea
yongui4783410 分钟前
MATLAB模糊控制的粒子群算法(Fuzzy-PSO)实现
数据结构·算法·matlab
sali-tec11 分钟前
C# 基于OpenCv的视觉工作流-章49-人脸检测
图像处理·人工智能·opencv·算法·计算机视觉
不爱吃炸鸡柳12 分钟前
4道经典算法题代码详解:从两数之和到链表两两交换
算法·链表·哈希算法
cmpxr_17 分钟前
【C】隐式类型转换
c语言·c++·算法
W230357657318 分钟前
【C++ 高性能日志系统实战】第三篇:异步日志系统的实现与优化
网络·数据结构·算法·日志
y = xⁿ25 分钟前
【LeetCode】哈希表
算法·leetcode·散列表