题目OJ地址:

https://www.luogu.org/problemnew/show/UVA524

hdu oj 1016:  https://vjudge.net/problem/HDU-1016

zoj 1457  :https://vjudge.net/problem/ZOJ-1457

题意翻译

输入正整数n,把整数1,2,...,n组成一个环,使得相邻两个整数之和均为素数。输出时,从整数1开始逆时针排列。同一个环恰好输出一次。.

多组数据,读入到EOF结束。

第i组数据输出前加上一行Case i:

相邻两组数据中间加上一个空行。

Prime Ring Problem

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<stdio.h>
#include<stdlib.h>
#include<math.h>
int N;
int b[]={};
int total=,a[]={};
int search(int); //回溯过程
int print(); //输出方案
int pd(int x,int y); //判断素数x+y是否质数 int main()
{
int t=;
while(scanf("%d",&N)!=EOF)
{
a[]=;
for(int i=;i<;i++) a[i]=;
for(int i=;i<;i++) b[i]=;
t++;
printf("Case %d:\n",t);
search();
printf("\n");
}
//printf("%d\n",total); //输出总方案数
}
int search(int t)
{
int i;
for(i=;i<=N;i++) //有20个数可选
if((!b[i])&&pd(a[t-],i)) //判断与前一个数是否构成素数及该数是否可用
{
a[t]=i;
b[i]=;
if (t==N) { if(pd(a[N],a[])==) print();}
else search(t+);
b[i]=;
}
}
int print()
{
int j;
total++;
//printf("<%d>",total);
printf("%d",a[]);
for(j=;j<=N;j++)
printf(" %d",a[j]);
printf("\n");
}
int pd(int x,int y)
{
int k=,i=x+y;
while(k<=sqrt(i)&&i%k!=) k++;
if(k>sqrt(i)) return ;
else return ;
}

本题目分析见  https://www.cnblogs.com/huashanqingzhu/p/4747009.html

这里要注意:洛谷OJ的测试数据比较弱,n最大是16.  hdu oj和uva oj原题的n是到20的。

UVA524 素数环 Prime Ring Problem的更多相关文章

  1. 洛谷UVA524 素数环 Prime Ring Problem

    标签:搜索与回溯 题目: 从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数. 算法分析: 非常明显,这是一道回溯的题目.从1开始,每个空位有20种可能,只要填进去的数合法:与前面的数不相 ...

  2. 素数环 Primg Ring Problem

    素数环 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84562#problem/C 题意: 输入正整数n,把整数1~n组成一个 ...

  3. HDU - 1016 Prime Ring Problem 经典素数环

    Prime Ring Problem A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., ...

  4. Prime Ring Problem素数环(HDU1016)

    Prime Ring Problem 思路:先看成一条链,往里头填数,满足任意相邻两数和为质数(这可以打表预处理出40以内的所有质数,扩展的时候枚举),填完了后检查首尾是否满足条件.字典序可以采用扩展 ...

  5. uva 524 prime ring problem——yhx

      Prime Ring Problem  A ring is composed of n (even number) circles as shown in diagram. Put natural ...

  6. hdu 1016 Prime Ring Problem(DFS)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  7. Prime Ring Problem + nyoj 素数环 + Oil Deposits + Red and Black

    Prime Ring Problem Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) ...

  8. [HDU 1016]--Prime Ring Problem(回溯)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...

  9. Prime Ring Problem

    Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ... ...

随机推荐

  1. supervisor 监控redis & mongodb

    安装 安装python brew install python 安装pipwget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.py ...

  2. RPG

    有排成一行的n个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.以上就是著名的RPG难题. 解 ...

  3. 多媒体开发(8):调试FFmpeg

    编译FFmpeg得到二进制文件,之后就是对二进制库的调用,这时FFmpeg就像一个黑盒子.作为程序员,难道不想研究一下FFmpeg的具体实现?比如是怎么拿到歌曲信息的.怎么解码的.怎么推流的,等等. ...

  4. RabbitMQ快速入门

    最近一段项目实践中大量使用了基于RabbitMQ的消息中间件,也积累的一些经验和思考,特此成文,望大家不吝赐教. 本文包括RabbitMQ基本概念.进阶概念.实践与思考等三部分,着重强调相关概念和基于 ...

  5. spring security入门demo

    一.前言 因项目需要引入spring security权限框架,而之前也没接触过这个一门,于是就花了点时间弄了个小demo出来,说实话,刚开始接触这个确实有点懵,看网上资料写的权限大都是静态,即就是在 ...

  6. centos6安装openresty

    1.安装依赖库 yum install readline-devel pcre-devel openssl-devel gcc 2.下载openresty wget --no-check-certif ...

  7. Python3之弹性力学——应力张量2

    问题 已知某应力张量的分量为 \[ \sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} ...

  8. 用STM32CudeMX 配置用到的函数(记住他!)

    1.设置PB5的电平:HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 0);2.读取PB5的电平值:int a = HAL_GPIO_ReadPin(GPIOB, GPIO_ ...

  9. Django复习2

    一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python man ...

  10. Ruby语法基础(一)

    Ruby语法基础(一) Ruby是一种开源的面向对象程序设计的服务器端脚本语言,最初由松本行弘(Matz)设计开发,追求『快乐和生产力』,程序员友好型,被称为『human-oriented langu ...