zoukankan      html  css  js  c++  java
  • HLG2179 组合(dfs水水更健康)

    组合
    Time Limit: 1000 MS Memory Limit: 32768 K
    Total Submit: 57(38 users) Total Accepted: 43(36 users) Rating: Special Judge: No
    Description

    给出一个正整数N,从集合{1,2,3..N} 中找出所有大小为k的子集, 并按照字典序从小到大输出。

    Input

    第一行是一个整数T,代表T组测试数据。

    接下来T行,每行是两个正整数n(1<=n<=10), k(1<=k<=n)。

    Output

    对于每组数据按字典序输出所有符合条件的子集。

    Sample Input

    1

    5 3

    Sample Output

    1 2 3

    1 2 4

    1 2 5

    1 3 4

    1 3 5

    1 4 5

    2 3 4

    2 3 5

    2 4 5

    3 4 5

    Source
    2014.11.29新生赛-热身赛
    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,k;
    int ans[50];
    bool vis[50];
    void dfs(int step,int p){
        if(step==k+1){
            for(int i=1;i<=step-1;i++){
               printf("%d%c",ans[i],i==step-1?'
    ':' ');
            }
            return ;
        }
        for(int i=p;i<=n;i++){
           if(!vis[i]){
              vis[i]=true;
              ans[step]=i;
              dfs(step+1,i+1);
              vis[i]=false;
           }
        }
    
    }
    int main(){
       int t;
       scanf("%d",&t);
       while(t--){
           memset(vis,false,sizeof(vis));
          scanf("%d%d",&n,&k);
          dfs(1,1);
       }
    
       return 0;
    }
  • 相关阅读:
    代码整洁之道 读书笔记
    AJAX分页带页码
    下拉框绑定数据
    Excel导入导出
    万能分页存储过程
    android 更新uI主线程
    eclipse配置j2ee项目
    java常见错误云集与注意事项
    亚马逊服务器搭建
    常见sql的error解决方法
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/4774004.html
Copyright © 2011-2022 走看看