码迷,mamicode.com
首页 > 其他好文 > 详细

HDU-1016【素数环】

时间:2016-09-07 22:43:47      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

题意:本题题意就是构成一个素数环。即相邻两数之和要为素数。环的元素个数在1到20之间。

技术分享

素数-只能被1和它本身整除的数

输入6就是1-6排成一个相邻数相加是素数;环,第一个和最后一个加起来也要是素数

Sample Input
6
8
 

 

Sample Output
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
 
/*su  shu  huan*/
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>

int a[22],n,b[22]={1},k;
int num[12] = {2,3,5,7,11,13,17,19,23,29,31,37},nu[40];

int dfs2(int m)
{
    int i;
    if(m==n+1&&nu[b[1]+b[n]]==1)
    {
         for(i=1;i<n;i++)
            printf("%d ",b[i]);
        printf("%d\n",b[n]);
    }
    else
    {
        for(i=2;i<=n;i++)
        {
            if(a[i]==1&&nu[i+b[m-1]])
            {
                //m++;
                b[m++]=i;
                a[i]=0;
                dfs2(m);
                a[i]=1;
                m--;
            }
        }
    }
    return 0;
}

int dfs(int m)
{
    int t=0,i;
    for(i=1;i<=n;i++)
    {
        if(a[i]==1)
        {
            t=1;break;
            //printf("-A-");break;
        }
    }
    //printf("t=%d\n",t);
    if(t==0&&nu[b[1]+b[n]]==1)
    {
        for(i=0;i<n-1;i++)
            printf("%d ",b[i+1]);
        printf("%d\n",b[n]);
    }
    if(t==0)
    {
         for(i=2;i<=n;i++)
            b[i]=0;
        k=1;b[1]=1;
        return 0;
    }

    for(i=2;i<=n;i++)
    {
        if(a[i]==1&&nu[i+m]==1)
        {printf("-%d-\n",i);
            a[i]=0;
            b[++k]=i;
            dfs(i);
            a[i]=1;
            b[k]=0;
            k--;
        }
    }
    for(i=2;i<=n;i++)
            b[i]=0;
        k=1;b[1]=1;
    return 0;
}
int main()
{
    int i;
    k=1;b[1]=1;
    for(i=0;i<12;i++)
        nu[num[i]]=1;
    scanf("%d",&n);
    for(i=2;i<=n;i++)
        a[i]=1;
        a[1]=0;b[1]=1;
    dfs2(2);
    return 0;
}

 

//全部搜索后符合题意的输出,然后回退一步,在回退一部,直到回到第一步,并且第一步全部循环了
//核心思想,回退的时候所有状态都还原

HDU-1016【素数环】

标签:

原文地址:http://www.cnblogs.com/zhangfengnick/p/5851112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!