`
SIHAIloveYAN
  • 浏览: 124545 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
文章列表
一、概述 全排列在很多程序都有应用,是一个很常见的算法,常规的算法是一种递归的算法,这种算法的得到基于以下的分析思路。 给定一个具有n个元素的集合(n>=1),要求输出这个集合中元素的所有可能的排列。 二、递归实现 2.1、实例一 例如,如果集合是{a,b,c},那么这个集合中元素的所有排列是{(a,b,c),(a,c,b),(b,a,c),(b,c,a),(c,a,b),(c,b,a)},显然,给定n个元素共有n!种不同的排列,如果给定集合是{a,b,c,d},可以用下面给出的简单算法产生其所有排列,即集合(a,b,c,d)的所有排列有下面的排列组成: (1)以a ...
一、概述 作为搜索算法的一种,DFS对于寻找一个解的NP(包括NPC)问题作用很大。但是,搜索算法毕竟是时间复杂度是O(n!)的阶乘级算法,它的效率非常低,在数据规模变大时,这种算法就显得力不从心了。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。 这些是百度上面的一些话,根据自己理解,就是说这个算法运用的时候就是找一个头结点,然后沿着这个头结点一直找下去,直到走到最后一个满足条件的分节 ...
1、标题: 世纪末的星期 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!于是,“谣言制造商”又修改为星期日...... 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) import java.util.Date; public class Main { public sta ...
1 武功秘籍 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。 小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走? 这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。 7 2、切面条 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根 ...
第一题: 三角形面积 如图1所示。图中的所有小方格面积都是1。 那么,图中的三角形面积应该是多少呢? 答案:8*8-8*4/2-6*4/2-8*2/2=28; 第二题: 立方变自身 观察下面的现象,某个数 ...
煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 171700 public class Main { public st ...
算法提高 队列操作 时间限制:1.0s 内存限制:256.0MB 问题描述   队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输入格式   第一行一个数字N。   下面N行,每行第 ...
算法提高 合并石子 时间限制:2.0s 内存限制:256.0MB 问题描述   在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。 输入格式   输入第一行包含一个整数n,表示石子的堆数。   接下来一行,包含n个整数,按顺序给出每堆石子的大小 。 ...
算法提高 11-1实现strcmp函数 时间限制:1.0s 内存限制:256.0MB 问题描述   自己实现一个比较字符串大小的函数,也即实现strcmp函数。函数:int myStrcmp(char *s1,char *s2) 按照ASCII顺序比较字符串s1与s2。若s1与s2相等返回0,s1>s2返回1,s1<s2返回-1。具体来说,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止(注意'\0'值为0,小于任意ASCI ...
算法提高 9-3摩尔斯电码 时间限制:1.0s 内存限制:256.0MB 问题描述   摩尔斯电码破译。类似于乔林教材第213页的例6.5,要求输入摩尔斯码,返回英文。请不要使用"zylib.h",只能使用标准库函数。用' * '表示' . ',中间空格用' | '表示,只转化字符表。   摩尔斯码定义见:http://baike.baidu.com/view/84585.htm?fromId=253988。 ...
算法提高 9-2 文本加密 时间限制:1.0s 内存限制:256.0MB 问题描述   先编写函数EncryptChar,按照下述规则将给定的字符c转化(加密)为新的字符:"A"转化"B","B"转化为"C",... ..."Z"转化为"a","a"转化为"b",... ..., "z"转化为"A",其它字符不加密。 ...
算法提高 9-1九宫格 时间限制:1.0s 内存限制:256.0MB 问题描述   九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。 样例输出 与上面的样例输入对应的输出。 例: 数据规模和约定   输入1-9这9个数字的一种任意排序。 我来说说:其实我觉得这里有些题目比算法训练里面的还要简单,为什么在拴法提高里面呢,疑问啊。像这个题目,感觉不难吧。。。 ...
算法提高 8-1因式分解 时间限制:10.0s 内存限制:256.0MB 问题描述   设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。 样例   与上面的样例输入对应的输出。   例: 数据规模和约定   输入数据中每一个数在int表示范围内。 import java.math.BigInte ...
算法提高 7-1用宏求球的体积 时间限制:1.0s 内存限制:256.0MB 问题描述   使用宏实现计算球体体积的功能。用户输入半径,系统输出体积。不能使用函数,pi=3.1415926,结果精确到小数点后五位。 样例输入 一个满足题目要求的输入范例。 例: 1.0 样例输出 与上面的样例输入对应的输出。 例: ...
算法提高 组合公式求值 时间限制:1.0s 内存限制:256.0MB 问题描述   给定n, m,求: 输入格式   输入一行,包含两个整数n, m。 输出格式   输出一行,包含求得的值,由于答案可能非常大,请输出此公式除以987654321的余数。 样例输入 3 1 样例输出 162 ...
Global site tag (gtag.js) - Google Analytics