• Prime Ring Problem dfs


    A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.

    Note: the number of first circle should always be 1.



    Inputn (0 < n < 20).
    OutputThe output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements. Print solutions in lexicographical order.

    You are to write a program that completes above process.

    Print a blank line after each case.
    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


    代码:


    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <map>
    #include <cmath>
    int n,ans[20]={1};
    using namespace std;
    int vis[21];
    bool isnum(int x)
    {
        if(x<=1)return false;
        for(int i=2;i<=sqrt(x);i++)
        {
            if(x%i==0)return false;
        }
        return true;
    }
    void dfs(int k,int last)
    {
        if(k==n)
        {
            if(!isnum(ans[0]+ans[n-1]))return;
            printf("%d",ans[0]);
            for(int i=1;i<n;i++)
                printf(" %d",ans[i]);
            putchar('
    ');
            return;
        }
        for(int i=2;i<=n;i++)
        if(!vis[i]&&isnum(last+i))
        {
            vis[i]=1;
            ans[k]=i;
            dfs(k+1,i);
            vis[i]=0;
        }
    }
    int main()
    {
        int k=0;
        while(cin>>n)
        {
            vis[1]=1;
            printf("Case %d:
    ",++k);
            dfs(1,1);
            putchar('
    ');
        }
    }
  • 相关阅读:
    day54——Python 处理图片
    day53——Python 处理 Excel 数据
    day52——Python 处理附件
    day51——爬虫(一)
    大数据治理体系简谈
    redis环境的安装
    微服务体系操作日志如何记录?
    mysql数据库设计规范
    win系统下git代码批量克隆,批量更新
    java实现二维码登录功能
  • 原文地址:https://www.cnblogs.com/8023spz/p/7235291.html
Copyright © 2020-2023  润新知