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

hdu Prime Ring Problem

时间:2015-04-17 18:02:04      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

简单的dfs,貌似这道题用暴力枚举就可以了,毕竟数据开的是比较小的。

技术分享
#include"iostream"
#include"algorithm"
#include"stdio.h"
#include"string.h"
#include"string"
#include"vector"
#include"cmath"
#define mx 105
using namespace std;
int q[mx],rear;
bool vis[mx];
int n;
bool prime(int x)
{
    int i;
    if(x==2) return true;
    for(i=3;i<=x/2;i+=2)
    {
        if(x%i==0) break;
    }
    if(i<=x/2) return false;
    return true;
}
void dfs(int x)
{
    int i;
    if(rear==n-1)
    {
       if(prime(1+x))
       {
        cout<<q[0];
        for(i=1;i<n;i++) cout<< <<q[i];
        cout<<endl;
        return;
       }
       else return;
    }
    for(i=2;i<=n;i++)
    {
        if(!vis[i]&&(i+x)%2==1&&prime(i+x))
        {
            vis[i]=true;
            q[++rear]=i;
            dfs(i);
            --rear;
            vis[i]=false;
        }
    }
}
int main()
{
    int icase=0;
    while(scanf("%d",&n)==1)
    {
        memset(vis,false,sizeof(vis));
        icase++;
        rear=0;
        q[0]=1;
        vis[1]=true;
        cout<<"Case "<<icase<<":"<<endl;
        dfs(1);
        cout<<endl;
    }
    return 0;
}
View Code

 

hdu Prime Ring Problem

标签:

原文地址:http://www.cnblogs.com/acm-jing/p/4435324.html

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