• hdoj1016 [dfs]


    http://acm.hdu.edu.cn/showproblem.php?pid=1016

    题意:

    已知一个数n,在1-n(包含 n ,0 < n < 20)里组合形成一个环形,使得每两个相邻的数都是素数,每次都以1为开始,输出所有情况。

    样例:

    6

    8

    Case 1:

    1 4 3 2 5 6

    1 6 5 2 3 4

    Case 2:

    1 2 3 8 5 6 7 4

    1 2 5 8 3 4 7 6

    1 4 7 6 5 8 3 2

    1 6 7 4 3 8 5 2

    dfs深度优先搜索入门题目,暴力搜索即可以过了

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cmath>
     4 #include <cstdio>
     5 using namespace std;
     6 int visited[25];
     7 int load[25];
     8 int n;
     9 bool isprim(int n)
    10 {
    11     if (n == 3)
    12         return true;
    13     for (int i = 2; i<=sqrt(n); i++)
    14     {
    15         if (n%i == 0)
    16             return false;
    17     }
    18     return true;
    19 }
    20 void dfs(int k,int v)
    21 {
    22     visited[v] = 1;
    23     if (k == n)
    24     {
    25         if (isprim(v+1))
    26         {
    27             load[k] = v;
    28             for (int j = 0; j < n; j++)
    29             {
    30                 printf("%d%c",load[j],j==n-1?'
    ':' ');
    31             }
    32             return ;
    33         }
    34     }
    35     for (int i = 2; i <= n; i++)
    36     {
    37         if (!visited[i] && isprim(v+i))
    38         {
    39             visited[i] = 1;
    40             load[k] = i;
    41             dfs(k+1,i);
    42             visited[i] = 0;    // turn back
    43             //load[cnt] = 0;
    44         }
    45     }
    46     return;
    47 }
    48 int main()
    49 {
    50     int cas = 1;
    51     while (cin >> n)
    52     {
    53         memset(visited,0,sizeof(visited));
    54         memset(load,0,sizeof(load));
    55         load[0] = 1;
    56         printf("Case %d:
    ",cas++);
    57         dfs(1,1);
    58         cout << endl;
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    Stm32设置串口300波特率
    STM32F103ZET6移植FreeRTOS过程
    什么时候该用裸机?什么时候该用RTOS?
    又到了立flag时间
    关于掉电数据保存的心得
    一个教训
    下个月回国给自己定目标
    GPRS模块/4G开发过程
    ftp登陆失败,check pass; user unknown
    python深浅拷贝
  • 原文地址:https://www.cnblogs.com/ediszhao/p/4737190.html
Copyright © 2020-2023  润新知