zoukankan      html  css  js  c++  java
  • hdoj--1016<dfs>

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016

    题目描述:1~n的整数排成一个环,首尾相连,相邻的两个数相加是素数,输出满足的排列,1开头输出,字典序;

    题目要点:dfs

         本题安顺序dfs,可以满足字典序,对于每一个要放进去的数要考察两个,一、是否放过了。二、是否和前面相邻的数构成素数;

    所以第一,开一个数组,记录该数是否被放过;第二,写一个判断素数的函数;

    代码如下:

    (当只有一个元素的时候比较特殊,要考虑到)

     1 #include<stdio.h>
     2 #include<string.h>
     3 int n,b[25],a[25],t=1;//b数组用来放数;a数组用来记录;
     4 int prime(int x)
     5 {
     6         for(int i=2;i<x;i++)
     7         {
     8             if(x%i==0)
     9                 return 0;
    10         }
    11         return 1;
    12 }
    13 void dfs(int cur)//cur记录的是这一次放大色是第几个数;
    14 {
    15     if(cur>n)   //注意这里一直放到第n+1个,然后比较1和b【n】是否是素数;
    16     {  
    17         if(prime(1+b[n])){
    18          printf("%d",b[1]);
    19          for(int i=2;i<=n;i++)
    20          {
    21              printf(" %d",b[i]);
    22          }
    23          printf("
    ");
    24         }
    25     }
    26     else
    27     {
    28         for(int i=2;i<=n;i++)
    29         {
    30             if(a[i]==0&&prime(i+b[cur-1]))
    31             {
    32                 b[cur]=i;a[i]=i;
    33                 dfs(cur+1);a[i]=0;
    34             }
    35 
    36         }
    37     }
    38 }
    39 int main()
    40 {
    41     while(scanf("%d",&n)!=EOF)
    42     {
    43         printf("Case %d:
    ",t++);
    44         memset(a,0,sizeof(a));
    45         b[1]=1;//一开头是固定的,直接赋值就好了。
    46         if(n==1)//如果只有一个数,算是符合要求直接输出就好;
    47         {
    48             printf("1
    
    ");
    49             continue;
    50         }
    51         dfs(2);//从2开始dfs
    52         printf("
    ");
    53     }
    54     return 0;
    55 }
    View Code
  • 相关阅读:
    UE4_简易AI_玩家死亡动画bug修复
    UE4_简易AI_Ai攻击
    pikachu-SSRF
    pikachu-XXE漏洞
    pikachu-PHP反序列化
    pikachu-Over permission(越权漏洞)
    pikachu-不安全的文件下载和上传
    pikachu-File Inclusion(文件包含漏洞)
    Web安全之RCF(远程命令,代码执行漏洞)
    Web安全之SQL Inject 2
  • 原文地址:https://www.cnblogs.com/by-1075324834/p/4328787.html
Copyright © 2011-2022 走看看