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

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int n,i , j, a[100], a1[100];
     6     while(scanf("%d", &n) == 1)
     7     {
     8         for(i = 0; i<n; i++)
     9         {
    10             scanf("%d", &a1[i]);
    11         }
    12 
    13         for (i = n-1; i>0; i--)
    14         {
    15             for (j = 0; j<i; j++)
    16             {
    17                 if (a1[j] > a1[j+1])
    18                 {
    19                     int t;
    20                     t = a1[j];
    21                     a1[j] = a1[j+1];
    22                     a1[j+1] = t;
    23                 }
    24             }
    25         }
    26         print_permutation(a, a1, n, 0);
    27     }
    28 }
    29 
    30 void print_permutation(int *a, int *a1, int n, int cur)
    31 {
    32     int i;
    33     if (cur == n)
    34     {
    35         for (i = 0; i<n; i++)
    36         {
    37             printf("%d ", a[i]);
    38         }
    39 
    40         printf("
    ");
    41     }
    42     else
    43     {
    44         for (i = 0; i<n; i++)
    45         {
    46             int j, ok = 1;
    47             for (j = 0; j<cur; j++)
    48             {
    49                 if (a[j] == a1[i])
    50                 {
    51                     ok = 0;
    52                     break;
    53                 }
    54             }
    55 
    56             if (ok)
    57             {
    58                 a[cur] = a1[i];
    59                 print_permutation(a, a1, n, cur+1);
    60             }
    61         }
    62     }
    63 }

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int n,i , j, a[100], a1[100];
     6     while(scanf("%d", &n) == 1)
     7     {
     8         for(i = 0; i<n; i++)
     9         {
    10             scanf("%d", &a1[i]);
    11         }
    12 
    13         for (i = n-1; i>0; i--)
    14         {
    15             for (j = 0; j<i; j++)
    16             {
    17                 if (a1[j] > a1[j+1])
    18                 {
    19                     int t;
    20                     t = a1[j];
    21                     a1[j] = a1[j+1];
    22                     a1[j+1] = t;
    23                 }
    24             }
    25         }
    26         print_permutation(a, a1, n, 0);
    27     }
    28 }
    29 
    30 void print_permutation(int *a, int *a1, int n, int cur)
    31 {
    32     int i;
    33     if (cur == n)
    34     {
    35         for (i = 0; i<n; i++)
    36         {
    37             printf("%d ", a[i]);
    38         }
    39 
    40         printf("
    ");
    41     }
    42     else
    43     {
    44         for (i = 0; i<n; i++)
    45             if( !i || a1[i]!=a1[i-1])
    46         {
    47             int j, c1 = 0, c2  =0, ok = 1;
    48             for (j = 0; j<cur; j++) if (a[j] == a1[i]) c1++;
    49             for (j = 0; j<n; j++) if (a1[j] == a1[i]) c2++;
    50             if (c1<c2)
    51             {
    52                 a[cur] = a1[i];
    53                 print_permutation(a, a1, n, cur+1);
    54             }
    55         }
    56     }
    57 }
  • 相关阅读:
    SpringBoot 如何生成接口文档,老鸟们都这么玩的!
    ELK 外网访问
    Elasticsearch 7.x配置用户名密码访问 开启x-pack验证
    在centos7 中安装Kibana
    在centos7 安装Elasticsearch 步骤:
    cuda-pytorch-gpu快速配置
    Face 2 to 3 D
    PointNet++
    PointNet:Deep Learning on Point Sets for 3D Classification and Segmentation
    3D Face Modeling From Diverse Raw Scan Data
  • 原文地址:https://www.cnblogs.com/shaughn/p/3950578.html
Copyright © 2011-2022 走看看