hpu-1690-CZY的组合数烦恼

简介: hpu-1690-CZY的组合数烦恼


题目描述

czy最近对组合数产生了浓厚的兴趣,一天他心血来潮,想排n个数字,但是很快他发现种类太多了,于是他决定从中随机找出m个数排,但还是太多了,所以他想请聪明的你写个程序帮助他找到所有种类的排列

输入

输入包括多组测试数据,每组包括一行整数n(1<=n<10),m(1<=m<=n),空格间隔

输出

按特定顺序输出所有组合。

特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。

样例输入

5 3

样例输出

543

542

541

532

531

521

432

431

421

321


题目分析:

还是全排列问题就是在控制排列的方式不一样

     点击这里   看看这个从小到大排列   和这个有什么区别  本博客另一个全排列问题可以参考一下

#include<cstdio>
#include<cstring>
#define INF 0xfffffff
int mark[20],a[20],arr[20];
int n,m;
void dfs(int v)
{
  if(v>m)  //  这里控制输出多少位
  {
    for(int i=1;i<=m;i++)
    printf("%d",a[i]);
    printf("\n");
    return ;
  }
  else
  {
    for(int i=n;i>=1;i--)
    {
      a[v]=i;//   和从小到大的主要区别就在这  那个是把这个放到if语句里面的  这个是先赋值后判断
      if(!mark[i]&&a[v]<a[v-1])
      {
        mark[i]=1;
        dfs(v+1);
        mark[i]=0;
      }
    }
  }
}
int main()
{
  while(~scanf("%d%d",&n,&m))
  {
    memset(mark,0,sizeof(mark));
    a[0]=INF;
    dfs(1);
  }
  return 0;
}





目录
相关文章
|
1月前
|
存储 算法
|
机器学习/深度学习 人工智能 自然语言处理
【每周一坑】三国演义中谁的存在感最强 +【解答】暴力计算圆周率
当然,精确统计是比较复杂的,比如同样是刘备,可以是 刘备、玄德、刘豫州、刘皇叔、使君、先主、备,而同样的 主公、丞相、将军 这些称谓在不同语境下指的又是不同的人。这里我们就只粗略算个大概即可,统计哪些个名字出现次数最多。你可以尽量让结果更接近实际值。
|
算法 网络架构
代码随想录算法训练营第三十三天 | LeetCode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
代码随想录算法训练营第三十三天 | LeetCode 1005. K 次取反后最大化的数组和、134. 加油站、135. 分发糖果
55 0
|
算法 Java
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
64 0
|
算法 索引
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
|
存储 算法 vr&ar
算法步步为营(02)-两数之和
两个非空链表,表示两个非负整数。它们每位数字都是逆序存储,且每个节点只能存储一位数字。 将两个数相加,并以相同形式返回一个表示和的链表。除了数字 0 之外,这两个数都不会以 0 开头。
102 0
|
机器学习/深度学习 算法 索引
算法步步为营(1)-两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。可以按任意顺序返回答案。
82 0
|
人工智能 BI 索引
刷爆力扣之构建乘积数组
刷爆力扣之构建乘积数组
刷爆力扣之构建乘积数组
|
存储
杨辉三角(简单难度)
杨辉三角(简单难度)
113 0
杨辉三角(简单难度)