1031 质数环

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 Description

一个大小为N(N<=17)的质数环是由1到N共N个自然数组成的一个数环,数环上每两个相邻的数字之和为质数。如下图是一个大小为6的质数环。为了方便描述,规定数环上的第一个数字总是1。如下图可用1 4 3 2 5 6来描述。若两个质数环,数字排列顺序相同则视为本质相同。现在要求你求出所有本质不同的数环。

codevs——1031 质数环-LMLPHP

输入描述 Input Description

只有一个数N,表示需求的质数环的大小。如:

输出描述 Output Description

每一行描述一个数环,如果有多组解,按照字典序从小到大输出。如:

样例输入 Sample Input

6

样例输出 Sample Output

1 4 3 2 5 6

1 6 5 2 3 4

数据范围及提示 Data Size & Hint
n<=17
 

搜索!

代码:

#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 20
using namespace std;
int n,a[N];
bool vis[N];
int read()
{
    ,f=; char ch=getchar();
    ; ch=getchar();}
    +ch-'; ch=getchar();}
    return x*f;
}
int pd(int x)
{
    ;i<=sqrt(x);i++)
     ;
    ;
}
int print()
{
    ;i<=n;i++)
     printf("%d ",a[i]);
    printf("\n");
}
int dfs(int x)
{
    ;i<=n;i++)
     ]+i))
     {
         vis[i]=;
         a[x]=i;
         ]+a[n])) print();
        );
         vis[i]=;
     }
}
int main()
{
    n=read();
    a[]=;
    dfs();
    ;
}
05-12 18:45