枚举的三种类型--指数型&排列型&组合型

简介: 枚举的三种类型--指数型&排列型&组合型

枚举的三种类型--指数型&排列型&组合型


枚举的三种类型


指数型枚举

指数型枚举


#include <bits/stdc++.h> 
using namespace std;
int n;
int arr[20];
void dfs(int cur,int m)
{
  if(cur == n + 1)
  {
    for(int i = 1;i < m;i++)
      cout<<arr[i]<<" ";
    puts(" ");                     //puts()函数的作用与语句“printf("%s\n",s);的作用相同。注意:puts在输出字 符串后会自动输出一个回车符。
    return;
  }
  dfs(cur + 1,m);//不选,仍为m个数 
  arr[m] = cur;//选出第cur个数 
  dfs(cur + 1,m + 1);//选第cur个数 
}
int main()
{
  cin>>n;
  dfs(1,1);
  return 0;
}
/*
4
4
3
3 4
2
2 4
2 3
2 3 4
1
1 4
1 3
1 3 4
1 2
1 2 4
1 2 3
1 2 3 4
*/

排列型枚举

排列型枚举


#include <bits/stdc++.h>
using namespace std;
int n;
int arr[30];
bool vis[30];
void dfs(int cur)
{
    if(cur == n + 1) {
        for(int i = 1; i <= n; ++i) cout << arr[i] << " ";
        puts("");
        return;
    }
    for(int i = 1; i <= n; ++i) {
        if(vis[i]) continue;
        arr[cur] = i;
        vis[i] = true;
        dfs(cur + 1);
        vis[i] = false;
    }
}
int main()
{
    cin >> n;
    dfs(1);
    return 0;
}
*/ 
/*
3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
*/

组合型枚举

组合型枚举


#include <bits/stdc++.h>
using namespace std;
int n, m;
int arr[30];
bool vis[30];
void dfs(int cur)
{
    if(cur == m + 1) {
        for(int i = 1; i <= m; ++i) cout << arr[i] << " ";
        puts("");
        return ;
    }
    for(int i = 1; i <= n; ++i) {
        if(vis[i] || i < arr[cur - 1]) continue;
        arr[cur] = i; //Ñ¡µÚi¸öÊý
        vis[i] = true;
        dfs(cur + 1);
        vis[i] = false;  //»Ö¸´
    }
}
int main()
{
    cin >> n >> m;
    dfs(1);
    return 0;
}*/ 
/*
3 2
1 2
1 3
2 3
*/
相关文章
|
7月前
|
网络安全 Python
这个错误是由于在将字符串类型的值转换为字典类型时出现了问题
【2月更文挑战第20天】这个错误是由于在将字符串类型的值转换为字典类型时出现了问题
34 1
|
1月前
|
Python
整型数据与字符串类型的数据进行相加
整型数据与字符串类型的数据进行相加。
53 9
|
2月前
|
C#
C#中的数组型参数学习笔记
C#中的数组型参数学习笔记
30 0
92. 递归实现指数型枚举
92. 递归实现指数型枚举
|
存储 关系型数据库 MySQL
MySQL数据类型----定点型,数据类型的选择
MySQL数据类型----定点型,数据类型的选择
170 0
|
7月前
递归实现指数型枚举
递归实现指数型枚举
32 0
|
存储 Go
Go 语言的基础数据类型:整数类型、浮点数类型、布尔类型、字符串类型等
Go 语言的基础数据类型:整数类型、浮点数类型、布尔类型、字符串类型等
77 0
Go 语言的基础数据类型:整数类型、浮点数类型、布尔类型、字符串类型等
|
存储 关系型数据库 MySQL
列的类型定义——浮点类型和定点数类型
前言 数据表中用浮点数类型和定点数类型来表示小数。浮点数类型包括单精度浮点数(FLOAT型)和双精度浮点数(DOUBLE型)。定点数类型就是DECIMAL型。下面从这三种类型的字节数、取值范围等方面进行对比,如下表所示。
|
存储 关系型数据库 MySQL
MySQL数据类型----布尔型,时间型,枚举型的简单介绍
MySQL数据类型----布尔型,时间型,枚举型的简单介绍
119 0
|
存储 关系型数据库 MySQL
尽量使用数值替代字符串类型
尽量使用数值替代字符串类型