zoukankan      html  css  js  c++  java
  • HDU 1016 Prime Ring Problem

    简单DFS。由 1~N 的数字组成的环。要求相邻两个数相加能组成素数。


    输入比較小,能够筛一下素数也能够直接推断。

        CLR(prime,0);
        prime[1]=1;
        for(int i=2;i<101;i++)
        for(int j=2;i*j<101;j++)
        prime[i*j]=1;

    然后dfs一遍就可以。


    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<queue>
    #include<algorithm>
    #include<map>
    #include<stack>
    #include<iostream>
    #include<list>
    #include<set>
    #include<vector>
    #include<cmath>
    
    #define INF 0x7fffffff
    #define eps 1e-8
    #define LL long long
    #define PI 3.141592654
    #define CLR(a,b) memset(a,b,sizeof(a))
    #define FOR(i,a,n) for(int i= a;i< n ;i++)
    #define debug puts("==fuck==")
    #define acfun std::ios::sync_with_stdio(false)
    
    #define SIZE 1000+10
    using namespace std;
    int n;
    int a[21];
    bool vis[21];
    bool prime[101];
    void dfs(int m)
    {
        if(m>n)
        {
            FOR(i,0,n-1)
            printf("%d ",a[i]);
            printf("%d
    ",a[n-1]);
        }
        else if(m==n)
        {
            if(!prime[a[m-1]+1])
                dfs(m+1);
        }
        else
        {
            FOR(k,2,n+1)
            {
                if(!prime[a[m-1]+k]&&!vis[k])
                {
                    vis[k]=1;
                    a[m]=k;
                    dfs(m+1);
                    vis[k]=0;
                }
            }
        }
    }
    
    
    int main()
    {
        CLR(prime,0);
        prime[1]=1;
        for(int i=2;i<101;i++)
        for(int j=2;i*j<101;j++)
        prime[i*j]=1;
        int cot=1;
        while(~scanf("%d",&n))
        {
            printf("Case %d:
    ",cot++);
            CLR(vis,0);
            vis[1]=1;
            a[0]=1;
            dfs(1);
            printf("
    ");
        }
    }
    


  • 相关阅读:
    Laravel5.0学习--01 入门
    MySQL账户安全设置
    360路由器c301最新固件支持万能中继
    PsySH:PHP交互运行环境
    PHP-CS-Fixer:格式化你的PHP代码
    JVM 类加载机制详解
    Java虚拟机(JVM)概述
    聊一聊 Spring 中的线程安全性
    Java 里如何实现线程间通信
    Java 数据结构
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6944429.html
Copyright © 2011-2022 走看看