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

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


    DFS的经典题


    #include<iostream>
    #include<cstring>
    using namespace std;
    
    int ring[25];
    bool prime[45];
    bool visit[25];
    
    void isprime(int n)
    {
        int i,j;
        for(i=2;i<n; i++)
        {
            for(j=2;i*j<n;j++)
            {
                 if(prime[i*j])
                    prime[i*j]=false;
            }
    
        }
    }
    void dfs(int cnt,int n)
    {
        int i;
        if(cnt==n && prime[ring[0]+ring[n-1]])          //找出一个符合条件的环
        {
    
            for(i=0; i<n; i++)
                cout<<ring[i]<<" ";
            cout<<endl;
        }
        else
            for(i=2; i<=n; i++)
            {
                if((!visit[i]) && prime[ring[cnt-1]+i])
                {
                    ring[cnt]=i;
                    visit[i]=true;
                    dfs(cnt+1,n);                       //选i
                    visit[i]=false;
    
    
                }
    
            }
    
    
    }
    int main()
    {
        int n;
        int i;
        for(i=2;i<45;i++)
            prime[i]=true;
        isprime(45);
        ring[0]=1;
        i=1;
        while(cin>>n)
        {
            memset(visit,0,sizeof(visit));
            cout<<"Case "<<i++<<":"<<endl;
            dfs(1,n);
            cout<<endl;
    
    
        }
        return 0;
    }


  • 相关阅读:
    s
    qq
    qqq
    q
    qq
    http请求报文
    qq
    q
    qqq
    java对象-String的用法
  • 原文地址:https://www.cnblogs.com/frankM/p/4399496.html
Copyright © 2011-2022 走看看