『模板』 子集生成

Posted luv_letters

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『模板』 子集生成相关的知识,希望对你有一定的参考价值。

两种方法:

1.增量构造法

2.位向量法

(ps:懒得分开写就写一起了)

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int zh[1001];//用于法一
 4 bool xl[1001];//用于法二
 5 void print(int s[],int n){
 6     for(int i=0;i<n;i++)  //用于法二
 7     if(xl[i]) cout<<s[i]<<\' \';
 8     cout<<endl;
 9 }
10 void ps1(int s[],int n,int pos=0){
11     for(int i=0;i<pos;i++){        //法一
12         cout<<zh[i]<<" ";
13     }
14     cout<<endl;
15     int m=pos ? zh[pos-1]:0;
16     for(int i=0;i<n;i++){
17         if(s[i]>m){
18             zh[pos]=s[i];
19             ps1(s,n,pos+1);
20         }
21     }
22 }
23 void ps2(int s[],int n,int pos=0){
24     if(pos==n){
25         print(s,n);//法二
26         return 0;
27     }
28     xl[pos]=1;
29     ps2(s,n,pos+1);
30     xl[pos]=0;
31     ps2(s,n,pos+1);
32 }
33 int main(){
34     int d[30000];
35     int n,r;
36     cin>>n>>r;
37     for(int i=0;i<n;i++){
38         d[i]=i+1;
39     }
40     ps1(d,n);
41     ps2(d,n);
42     return 0;
43 }

 

还有一种二进制法由于我不会某些原因以后懒得补上

先献上图片

 

以上是关于『模板』 子集生成的主要内容,如果未能解决你的问题,请参考以下文章

子集生成模板

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容

『模板』 子集生成

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段