问题描述:将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,
结果均为素数,那么这个环就成为素数环。
n=20时,下面的序列就是一个素数环:
1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 20 11 12 19 18
英文名:Prime Ring Problem
解题分析:
对于这样的问题, 我的想法就是首先要判断...
分类:
编程语言 时间:
2015-04-21 22:41:24
阅读次数:
583
素数环
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。
为了简便起见,我们规定每个素数环都从1开始。例如,下图就是6的一个素数环。
输入有多组测试数据,每组输入一个n(0
输出每组第一行输出对应的Case序号...
分类:
其他好文 时间:
2015-04-19 17:59:06
阅读次数:
162
1.题目描述:点击打开链接
2.解题思路:本题利用回溯法解决。首先生成2*n范围内的所有素数,便于后续的判断。接下来试着填写每一位,如果数字i满足没有用过且它与前一项之和是素数,那么就可以用它,同时标记它已使用,递归寻找cur+1,退出时清除使用标记。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#inc...
分类:
其他好文 时间:
2015-04-06 08:56:55
阅读次数:
123
素数环问题时限:1000ms内存限制:10000K 总时限:3000ms描述把1到20这重新排列,使得排列后的序列A满足:a. 任意相邻两个数之和是素数b. 不存在满足条件a的序列B使得:A和B的前k(0 #include #include using namespace std;#include ...
分类:
其他好文 时间:
2015-03-31 10:30:52
阅读次数:
96
直接枚举n!个效率不高,回溯法更优#include #include #include using namespace std;const int Max = 10000;bool isp[Max];int vis[Max];int a[Max]= {1};int n;void is_prime(i...
分类:
其他好文 时间:
2015-03-22 09:06:02
阅读次数:
161
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace SeqListSort{ /// /// /// lihonglin /// /...
分类:
编程语言 时间:
2015-03-02 06:07:17
阅读次数:
306
只要能把待求解的问题分成不太多的步骤,每个步骤又只有不太多的选择,都可以考虑应用回溯法。想象一棵包含 L 层,每层的分支因子均为b的解答树,它的结点数高达1+b+b^2+...+b^(L-1)=(b^L-1)/(b-1)。无论是b太大还是L太大,结点数都会是天文数字。
一、八皇后问题
最简单的思路是,从8X8=64个格子中选一个子集,使得满足要求。正是子集枚举问题。然而,规模是2^64个。...
分类:
其他好文 时间:
2015-03-02 01:03:20
阅读次数:
266
最近几天脑子越来越来笨了,一个简单的素数环问题纠结一天,没这么搞懂回溯的思路,不过设计到素数的话,突然想总结一下常用的素数打表,
一般用的是下面的代码:
#include //素数打表
#include
#include
#include
#include
using namespace std;
#define maxn 1000000
bool p1[maxn]; //判断p[...
分类:
编程语言 时间:
2015-01-21 13:34:06
阅读次数:
178
这是一道考搜索的题目。这道题我用深搜解决了,不过说实话自己对于深搜理解得并不深刻,在这里对于这一题总结一下。这道题输入为一个实数n,要求输出有1~n这n个数所组成的所有素数环(这是素数环),素数环的要求是任意一个数字分别和其前后两个数字相加都要是素数,且数字1始终作为环展成条后的第一位。深度搜索:从...
分类:
其他好文 时间:
2015-01-12 18:49:44
阅读次数:
118