zoukankan      html  css  js  c++  java
  • 子集生成

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std; 
    int vis[100];
    int set[100];
    int cpset[100];
    int cmp(int a,int b){
        return a>b;
    }
    void getSet(int n){
        for(int i=0;i<n;i++){
            cin>>set[i];
            vis[set[i]]++;
        } 
        sort(set,set+n,cmp);
    }
    void subset(int cnt,int n,int pos){
        if(cnt){
            for(int i=0;i<n;i++){
                if(!i||(set[i]!=set[i-1])){
                    if(vis[set[i]]){
                        vis[set[i]]--;
                        cpset[pos]=set[i];
                        subset(cnt-1,n,pos+1);
                        vis[set[i]]++;
                    }
                }
            }
        }
        else{
            for(int i=0;i<n;i++){
                if(cpset[i])
                cout<<cpset[i]<<" ";
            }
            cout<<endl;
        }
    }
    int main(){
        int n;
        while(cin>>n){
            memset(vis,0,sizeof(vis));
            memset(cpset,0,sizeof(cpset));
            getSet(n);
            
            for(int i=1;i<n+1;i++){
                subset(i,n,0);
            }
        }
    } 

    定序可避免重复!!!!

  • 相关阅读:
    8.9_java_35
    8.8_java_34
    8.7_java_33
    8.6_java_32
    8.5_java_31
    8.4_java_30
    8.3_java_29
    2020年春季学期《软件工程》教学总结
    json的标准格式
    详解 【Vue】 生命周期
  • 原文地址:https://www.cnblogs.com/z-bear/p/8425837.html
Copyright © 2011-2022 走看看