码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ32 组合数

时间:2015-04-29 15:20:15      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:acm

用的深搜,在csdn编程挑战赛上碰到过一次


组合数

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

  • 描述

  • 找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。

    • 输入

    • 输入n、r。

    • 输出

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

    • 样例输入

    • 5 3
    • 样例输出

    • 543
      542
      541
      532
      531
      521
      432
      431
      421
      321


#include <iostream>

#include <cstring>


using namespace std;


int n,m;

int ans[12],used[12];


void dfs(int x,int num)

{

for(int i=x;i>=0;--i)

{

if(num==m)

{

for(int j=0;j<m;j++)

cout<<ans[j];

cout<<endl;

return;

}

if(!used[i])

{

used[i]=1;

ans[num]=i;

dfs(i-1,num+1);

used[i]=0;

}

}

}

int main()

{

cin>>n>>m;

memset(used,0,sizeof(used));

dfs(n,0);

return 0;

}        


NYOJ32 组合数

标签:acm

原文地址:http://anglecode.blog.51cto.com/5628271/1640251

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!