zoukankan      html  css  js  c++  java
  • 暴力!!!!

    子集生成

    增量构造法

    #include<stdio.h>
    bool a[100];
    bool vis[100];
    int n;
    void dfs(int num){
        if(num==n+1)
        {
            for (int i=1;i<=n;i++)
               // if(a[i])
                    printf("%d ",a[i]);
            printf(" ");
            return ;
        }
        for (int i=1;i<=2;i++){
            if(i==1){
               a[num]=0;
               dfs(num+1);
            }
            else {
                a[num]=1;
                dfs(num+1);
                a[num]=0;
            }
        }
    }
    int main(){
        scanf("%d",&n);
        dfs(1);
    return 0;
    }

    二进制构造

    位运算

    A&B 交集

    A|B 并集

    A^B 对称差

    #include<stdio.h>
    bool a[100];
    bool vis[100];
    int n;
    void dfs(int num){
      for (int i=0;i<=n;i++){
        if(num&(1<<i)) printf("%d ",i+1);
        //else printf("%d ",0);

      }printf(" ");
    }
    int main(){
        scanf("%d",&n);
        for (int i=0;i<(1<<n);i++)
        dfs(i);
    return 0;
    }

    全排列

    #include<stdio.h>
    int a[1000];
    int n;
    void dfs(int num){
     if(num==n+1){
        for (int i=1;i<=n;i++)
            printf("%d ",a[i]);
        printf(" ");
        return ;
     }
     for (int i=1;i<=n;i++){
        int ok=1;
        for (int j=1;j<=num;j++){
            if(a[j]==i) ok=0;
        }
        if(ok){
           a[num]=i;
           dfs(num+1);
           a[num]=0;
        }
     }
    }
    int main(){
       scanf("%d",&n);
       dfs(1);
    return 0;
    }

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    char a[10000];
    int n;
    int main(){
       //scanf("%d",&n);
       scanf("%s",a);
       n=strlen(a);
       sort(a,a+n);
       do{
        for (int i=0;i<n;i++)
            printf("%c ",a[i]);
        printf(" ");
       }while(next_permutation(a,a+n));

    return 0;
    }

  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/lmjer/p/7586158.html
Copyright © 2011-2022 走看看