首页 > 其他分享 >93. 递归实现组合型枚举

93. 递归实现组合型枚举

时间:2023-02-16 18:58:03浏览次数:44  
标签:typedef 组合型 递归 int long ++ 枚举 93 include

 

 

题解:递归方法,在上一题的题解上面加一个限定就行了
点击查看代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef pair<int,int> pll;
typedef long long ll;
const int N=1e5+7;
int n,m;
int a[N];
void dfs(int x,int idx)
{
	if(idx==m)//限定!!!
	{
		for(int i=1;i<=idx;i++)
		cout<<a[i]<<" ";
		cout<<"\n";
	}
	
	for(int i=x;i<=n;i++)
	{
		a[idx+1]=i;
		dfs(i+1,idx+1);
	}
	return ;
}
int main()
{
	
	cin>>n>>m;
	dfs(1,0);
	return 0;
 } 

非递归:组合数

点击查看代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef pair<int,int> pll;
typedef long long ll;
const int N=1e5+7;
int n,m;
int a[N];
int cc[50][50];
int b[50000][500];
int main()
{
	
	cin>>n>>m;
	cc[0][0]=1;
	for(int i=1;i<=n;i++)
	{
		cc[i][0]=1;
		for(int j=1;j<=i;j++)
		{
			cc[i][j]=cc[i-1][j]+cc[i-1][j-1];
	//		cout<<cc[i][j]<<" ";
		}
	//	cout<<endl;
	}
	int sum;
	int w=cc[n][m];
//	cout<<w<<endl;
	for(int i=1;i<=m;i++)
	{
		int j=1;
		int q=i;
		int x=0;
		while(j<=w)
		{
			if(n-q<m-i)	q=b[j][i-1]+1;
			if(n-i-x>0)
			sum=cc[n-q][m-i];
			else  sum=1000;
			while(sum--)
			{
				b[j++][i]=q;
			}
//			if(i!=1)
//			q=b[j][i-1]+1;
//			else 
			q++;
		//	x++;
		}
	}
	for(int i=1;i<=w;i++)
	{
		for(int j=1;j<=m;j++)
		cout<<b[i][j]<<" ";
		cout<<endl;
	}
	return 0;
 } 

标签:typedef,组合型,递归,int,long,++,枚举,93,include
From: https://www.cnblogs.com/xxj112/p/17127906.html

相关文章

  • 【题解】Luogu P3939 数颜色
    题目分析:解法一:显然我们可以直接对每一种颜色建一棵线段树,然后剩下的操作就非常简单了。代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;constint......
  • java 按照自定义顺序枚举实体类的属性值
    工具类/***按照字段顺序进行拼接**@paramobj对象,需要在字段上添加FieldOrder注解*@paramfix拼接符号*@param<T>*@ret......
  • Java 枚举类转json对象
     1.情景展示 如上图所示,我想要将枚举类转换成json对象,key对应属性名称,value对应属性值,效果如下:{"IvcVoucherCode":"200","IvcVoucherStatus":"票据模板下载成功"}......
  • 数据字典标准与统一的重要性(码表&枚举值)
    在日常的软件开发当中,开发者经常会听到“公共代码、编码、码表、枚举值”这样的名词,对这些概念可能会有些混淆和认知不透彻,那么这篇文章会详细论述一下关于数据字典的相关概......
  • 3593、找到小镇的法官
    小镇里有n个人,按从1到n的顺序编号。传言称,这些人中有一个暗地里是小镇法官。如果小镇法官真的存在,那么:小镇法官不会信任任何人。每个人(除了小镇法官)都信任这位小镇法......
  • Z1932 树上路径
     #Description给你一棵树,树上每个点都有其color现在问你对于每种color,有多少种简单路径经过它#Format##Input一行给出N第二个N个数字,代表每个点的color接下来N-......
  • 【JavaScript】11_枚举属性+可变类型+修改对象和属性与方法
    4、枚举属性枚举属性,指将对象中的所有的属性全部获取for-in语句\-语法:for(letpropNamein对象){语句...}\-for-in的循环体会执行多次,有几个属性就会执行几次,每次执......
  • usb 2.0枚举过程
    device枚举过程:hub枚举过程: ......
  • 代码随想录算法训练营第二十七天 | 93.复原IP地址,78.子集,90.子集II
    一、参考资料复原IP地址题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html视频讲解:https://www.bilibili.com/video......
  • 前端-vue基础93-实现简单前端路由
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......