NYOJ 32 组合数【DFS】

来源:互联网 发布:win7桌面日程安排软件 编辑:程序博客网 时间:2024/05/29 02:58

组合数

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。
输入
输入n、r。
输出
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。
样例输入
5 3
样例输出
543542541532531521432431421321
来源
[苗栋栋]原创
上传者

苗栋栋

做过的第一道深搜题目

AC:

#include<stdio.h>int a[15];int m,n;void dfs(int m,int n){    for(int i=m; i>=n; i--)    {        a[n]=i;        if(n>1)        {            dfs(i-1,n-1);//这里是i-1和n-1        }        else        {            for(int j=a[0]; j>0; j--)            {                printf("%d",a[j]);            }            printf("\n");        }    }}int main(){    while(~scanf("%d%d",&m,&n))    {        a[0]=n;        dfs(m,n);    }}



0 0
原创粉丝点击