题目大意:由1~N的自然数组成一个环,这个环满足相邻的自然数和为素数,
输出所有的情况
思路:本来以为DFS会超时,结果N是小于等于20的,所以直接DFS搜索。DFS
中三个变量,当前数字为now,下一个相邻的数为next,找到N个数中第几个数
为x,如果相邻数相加不是素数,则不必搜下去。否则记录第x个数的结果为next。
如果满足n个数,且最后第N个数与1的和也为素数就输出结果。否则就标记下当前
元素,表示已经使用过,继续找第x+1个数字。最后清除标记。...
分类:
其他好文 时间:
2014-11-24 11:58:00
阅读次数:
217
3n+1问题
时间限制:1000 ms | 内存限制:65535 KB
难度:0
描述
对于任意大于一的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半,经过若干次这样的变换,一定会使n变为1.求输出变换的次数,注 要求次数要对3取余;例如3->10->5->16->8->4->2->1 变换了7次,对3取余的1; n9
输入测试数...
分类:
其他好文 时间:
2014-11-23 00:43:56
阅读次数:
179
完美数 Time Limit:1000MSMemory Limit:65536KB64bit IO Format:%lld & %lluDescription任何一个自然数的约数中都有1和它本身,我们把小...
分类:
其他好文 时间:
2014-11-22 21:21:25
阅读次数:
178
素数的定义: 指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。 我将给出几种实现对自然数n进行素数的判断方法,主要从代码的执行效率上考虑这个问题。 首先,根据素数的定义,大家都会想到的一个方法就是遍历2~n-1,如果...
分类:
其他好文 时间:
2014-11-19 18:07:30
阅读次数:
224
一般来说,我们会使用正规表达式来做字符串匹配,今天在网上浏览的时候,看到了有人用正则表达式来检查一个数字是否为素数(质数),让我非常感兴趣,这个正则表达式如入所示:检查素数与否的正则表达式要使用这个正规则表达式,你需要把自然数转成多个1的字符串,如:2 要写成 “11”, 3 要写成 “111”, ...
分类:
其他好文 时间:
2014-11-19 12:24:05
阅读次数:
190
如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。
有点数位DP的味道,这个要记得不相邻,但是自己跟自己可以。还有就是枚举的是往前插
dp[i][j] 长i,...
分类:
其他好文 时间:
2014-11-17 21:20:11
阅读次数:
140
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(st...
分类:
其他好文 时间:
2014-11-15 11:28:56
阅读次数:
134
保证接下来提到的算法都将是在线的。虽然分了几个算法但其实是一个。一:预处理所有区间[p*block+1,q*block]代表的值。其中:p、q为自然数0、1、……、[n/block]block在前一篇文章中提到过,最适合取n/sqrt(m)。这样共记录下m个值,简单分析得平均复杂度n*sqrt(m)...
分类:
编程语言 时间:
2014-11-14 22:44:18
阅读次数:
235
DFA的运行
一、 实验目的
1.理解有穷自动机的作用;
2.利用状态图和状态表表示有穷自动机;
3.以程序实现有穷自动机的运行过程;
4.利用状态表和有穷自动机的运行原理编制程序,使得程序能够识别一个输入串是否为一个有效的符号串。具体可以选择下面之一:无符号定点实数,无符号正偶数,自然数,整数,十六进制数,或其他自己定义的符号串。
二、 实验环境
操作系统:window xp
编...
分类:
其他好文 时间:
2014-11-14 19:49:50
阅读次数:
343
原文:将一个正整数表示为连续自然数的和 将一个正整数表示为连续自然数的和,比如给定整数15,那么根据题意,需要输出的连续自然数为1+2+3+4+5=4+5+6=7+8=15。题目中的连续自然数序列可以看做一个升序的有序数组,取数组前两个数为起始的区间的左右两个端点。对区间中的值进行累加,如果累加值....
分类:
其他好文 时间:
2014-11-09 12:32:22
阅读次数:
220