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;
}





目录
相关文章
|
14天前
1037 在霍格沃茨找零钱
1037 在霍格沃茨找零钱
|
1月前
|
机器学习/深度学习 算法 测试技术
青蛙跳台阶:我如何得知它是一道斐波那契数列题?——应用题破题“三板斧”(二)
这篇内容是关于解题策略的,主要介绍了在面对应用题时可以采用的“三板斧”方法:举例、模拟和找规律。通过一个走楼梯的例子详细解释了这三个步骤如何运用。首先,举例将抽象问题具体化,比如走5级台阶有几种方式。其次,通过模拟不同情况,例如思考走每一步的可能,发现递归或循环的模式。最后,通过找规律归纳出一般性的解决方案,这里发现走台阶问题与斐波那契数列相关。文章还提到了一个拓展案例——矩形覆盖问题,同样可以用类似的方法分析。总的来说,文章强调了解题过程中理解和转化问题的重要性,以及通过训练提升这方面能力。
23 0
|
1月前
|
C语言
青蛙跳台阶:我如何得知它是一道斐波那契数列题?——应用题破题“三板斧”(一)
这篇内容介绍了C语言学习中的经典例题——斐波那契数列,强调了解题思路的重要性。斐波那契数列是一个数列,其中每个数是前两个数的和。文章指出,很多类似题目,如“青蛙跳台阶”,实质上都在考察斐波那契数列的实现。文中提供了斐波那契数列的定义、代码实现和递归与非递归的思路,并鼓励读者从问题中分析出解题模型,而非直接套用已知方法。此外,还提及了一道相关题目“矩形覆盖问题”,以供进一步练习。
22 0
|
1月前
【错题集-编程题】活动安排(贪心 - 区间)
【错题集-编程题】活动安排(贪心 - 区间)
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
【每周一坑】三国演义中谁的存在感最强 +【解答】暴力计算圆周率
当然,精确统计是比较复杂的,比如同样是刘备,可以是 刘备、玄德、刘豫州、刘皇叔、使君、先主、备,而同样的 主公、丞相、将军 这些称谓在不同语境下指的又是不同的人。这里我们就只粗略算个大概即可,统计哪些个名字出现次数最多。你可以尽量让结果更接近实际值。
【动态规划上分复盘】这是你熟悉的地下城游戏吗?
【动态规划上分复盘】这是你熟悉的地下城游戏吗?
|
10月前
蓝桥 凑平方数 (我依旧很菜)
蓝桥 凑平方数 (我依旧很菜)
|
10月前
|
人工智能 Go
树状数组(包教包会,不会抽我)
树状数组(包教包会,不会抽我)
52 0
|
算法 索引
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
代码随想录训练营day34| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果...
|
算法 Java Python
深入理解动态规划算法 | 凑硬币
深入理解动态规划算法 | 凑硬币
95 0