摘要: 又是动态规划,又是动规方程,但是如果你是准备参加noip的选手的话请不要错过这篇解说,因为这倒题虽然简单,但有很大的启发性,因此我准备详细的通过三个代码来讲解这道题。 首先我会引导读者如何去思考这道题的动规方法,通过一个时间效率为O(v*n*n)、空间效率为O(V*n)的简单方法,让读者理解程序的正确性。 然后我将改变一下思考的角度,介绍一个时间效率为O(v*n)、空间效率为O(v*n)的... 阅读全文
posted @ 2008-12-18 16:19 刘永辉 阅读(747) 评论(4) 推荐(2) 编辑
摘要: 一个一个的穷举吧,在填充符号的时候按照‘ ’、‘+’、‘-’的顺序填充就是题目要求的所谓的“ASCII order” Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: zerosum LA... 阅读全文
posted @ 2008-12-18 14:15 刘永辉 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 这是一个动态规划的题目,明确一下题目的意思:用N个点组成一棵深度为K的二叉树,求一共有几种方法? 一开始我以为可以有好几颗树,其实只能有一棵。 简单给出转移方程: 设possibleNumber[i][j]表示给定i个节点能够得到的深度小于等于j的树的种数 那么有possibleNumber[i][j] = S(possibleNumber[k][j-1] * possibleNumb... 阅读全文
posted @ 2008-12-17 14:54 刘永辉 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 我用动态规划,下面主要讲一下怎么去思考这个题。 在我的《通过金矿模型介绍动态规划》一文中我提到思考动态规划可以分为9个步骤,其实这9步中第一步是最重要的,就是如何模拟这个过程。 拿到这道题的时候,我们可以这样想,假如我有一张条纸,上面写了一个串s,我需要从前面开始剪掉一个前缀,但是每次剪下来的子串都必须是P集合中的元素,我需要知道剪掉的前缀最长可以有多长。 现在来思考问题的最后一步。如... 阅读全文
posted @ 2008-12-16 15:51 刘永辉 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 没什么特别的方法,c的大小不会影响到效率,最多仅有8种结果,我写了一个configuration类,每个configuration就是一种可能的结果 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 ... 阅读全文
posted @ 2008-12-15 14:45 刘永辉 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 没有用到什么特别的方法,从M+1开始一个一个的枚举 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: runround LANG: JAVA complete date: 2008/1... 阅读全文
posted @ 2008-12-15 14:38 刘永辉 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 这是一个比较简单的动态规划,做一点重要提示,程序就不加注释了 题目的意思就是问从1到n总共n个数字中选出一个集合使得集合中数字和为n*(n+1)/4有多少种方法,如果有S种方法,那么输出的答案就是S/2. 我用numberOfWays[i][j]表示1到i中取出一个和为j的集合的方案数,那么就有递推公式 numberOfWays[i][j] = numberOfWays[i-1][j-i] ... 阅读全文
posted @ 2008-12-09 17:09 刘永辉 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 注意到一点后就会觉得这道题是非常简单的了,罗马字母表示法总是一个数字一个数字的表示,比如说用罗马字母来表示数字“3456”时,先表示出“3000(MMM)”,然后是“400(CD)”,然后是“50(L)”,最后是“6(VI)”,最后把四个罗马字母链连接起来就是“3456(MMMCDLVI)”的准确表示 那么计算表示“3456”需要多少罗马字母时,就可以把“3000”、“400”、“50”、“6”... 阅读全文
posted @ 2008-12-09 15:00 刘永辉 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 没有执著追求的人,思想就会变得复杂 2008/12/6 阅读全文
posted @ 2008-12-06 19:29 刘永辉 阅读(455) 评论(8) 推荐(0) 编辑
摘要: 一开始读了这道题的题目就被吓着了,我还以为要求最大完全子图(完全子图就是每两个点都相连) 后来仔细读了题目的最后一句话才明白这道题很简单,那句什么在2^b进制下最小的那句话蕴含着以下一些信息,希望对你理解题意有帮助 1、题目给出的n很小,以至于我们随随便便就可以找到n个满足条件的codeword 2、因为给出的答案数字必须是尽量小的,所以我们可以从0开始逐步增加codeword的值 3、... 阅读全文
posted @ 2008-12-04 15:52 刘永辉 阅读(361) 评论(0) 推荐(0) 编辑