看《算法竞赛入门经典》 第七章, 隐式图的遍历,八数码一题。学到了全排列的编码与解码。用处: 每一个排列代表一个图的状态, 比如 8,3,2,4,5,6,7,0,1表示成图就是8 3 24 5 67 0 1我们将0~8的全排列和0~9!一一映射起来。比如0, 1, 2, 3, 4, 5,...
分类:
其他好文 时间:
2015-11-07 14:46:36
阅读次数:
231
Thinking about it: 看完这题的时候,确实没有啥思路,看了题解才明白的。这个最小值是通过二分法先确定下来的,然后才能分组。这种思维方式超出了我的意料,我还一直朝着DP的思路走。看来我还需要多磨练。Reference: 《算法竞赛入门经典(第2版)》Code: /** * AC ...
分类:
其他好文 时间:
2015-09-06 14:29:50
阅读次数:
150
来源:《算法竞赛入门经典》例题5.4.3 题目:果园里的树排列成矩阵。它们的x和y坐标均是1~99的整数。输入若干个三角形,依次统计每一个三角形内部和边界上共有多少棵树 样例输入: 1.5 1.5 1.5 6.8 6.8 1.5 10.7 6.9 8.5 1.5 14.5 ...
分类:
编程语言 时间:
2015-09-02 18:34:27
阅读次数:
186
来源:《算法竞赛入门经典》例题5.4.2 题目:输入正整数n(2≤n≤100),把阶乘n!=1*2*3*...*n分解成素因子相乘的形式,从小到大输出各个素数(2、3、5...)的指数。例如,5! 表示为 3 1 1(5!=23*31*51=120),程序忽略比最大素因子更大的素数(否则末尾会...
分类:
编程语言 时间:
2015-08-30 22:48:36
阅读次数:
250
来源:《算法竞赛入门经典》例题5.4.1 题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。 样例输入: 3...
分类:
编程语言 时间:
2015-08-30 15:34:21
阅读次数:
124
习题2-10 排列(permutation)
用1,2,3,…,9组成3个三位数 abc, def, 和ghi,每个数字恰好使用一次,要求 abc:def:ghi = 1:2:3。输出所有解。提示:不必太动脑筋。
解题思路:
首先abc最小值只能为123,最大值329,才符合题意。此题重点判断1—9中每个数字都需出现,不能重复。解决方法:利用数组a[1],..,a[9]分别表...
分类:
编程语言 时间:
2015-08-30 11:25:58
阅读次数:
174
来源:《算法竞赛入门经典》例题5.3.2 题目:输入一个字典(用******结尾),然后再输入若干单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出( 如果不存在,输出:( )。输入单词之间用空格或空行隔开,且所有输入单词都由...
分类:
编程语言 时间:
2015-08-29 16:42:45
阅读次数:
223
来源:《算法竞赛入门经典》例题5.2.2 题目:输入不超过1000的正整数n,输出n!=1*2*3*…*n的精确结果。 样例输入:30 样例输出:265252859812191058636308480000000 分析:为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,10...
分类:
编程语言 时间:
2015-08-28 17:10:04
阅读次数:
150
来源:《算法竞赛入门经典》例题5.1.3 题目:如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。 样例输入:HoHoHo 样例输出:2 分析:...
分类:
编程语言 时间:
2015-08-27 20:39:42
阅读次数:
169
真的,资料好多的,转载两个差不多了,但其实,我是读运筹学教程+算法竞赛入门经典训练指南读懂的。比较全面的是輝夜の永遠亭写的,基本上的流程都介绍了,特别是比较写得很好。当然博客园上也有人转载http://www.cnblogs.com/longdouhzt/archive/2012/05/20/251...
分类:
其他好文 时间:
2015-08-20 18:37:41
阅读次数:
113