随笔分类 -  我的USACO

上一页 1 2 3 下一页
USACO_2_2_Subset Sums
摘要:这是一个比较简单的动态规划,做一点重要提示,程序就不加注释了 题目的意思就是问从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 刘永辉 阅读(485) 评论(0) 推荐(0)
USACO_2_2_Preface Numbering
摘要:注意到一点后就会觉得这道题是非常简单的了,罗马字母表示法总是一个数字一个数字的表示,比如说用罗马字母来表示数字“3456”时,先表示出“3000(MMM)”,然后是“400(CD)”,然后是“50(L)”,最后是“6(VI)”,最后把四个罗马字母链连接起来就是“3456(MMMCDLVI)”的准确表示 那么计算表示“3456”需要多少罗马字母时,就可以把“3000”、“400”、“50”、“6”... 阅读全文
posted @ 2008-12-09 15:00 刘永辉 阅读(357) 评论(0) 推荐(0)
USACO_2_1_Hamming Codes
摘要:一开始读了这道题的题目就被吓着了,我还以为要求最大完全子图(完全子图就是每两个点都相连) 后来仔细读了题目的最后一句话才明白这道题很简单,那句什么在2^b进制下最小的那句话蕴含着以下一些信息,希望对你理解题意有帮助 1、题目给出的n很小,以至于我们随随便便就可以找到n个满足条件的codeword 2、因为给出的答案数字必须是尽量小的,所以我们可以从0开始逐步增加codeword的值 3、... 阅读全文
posted @ 2008-12-04 15:52 刘永辉 阅读(370) 评论(0) 推荐(0)
USACO_2_1_Healthy Holsteins
摘要:这道题使用穷举,由于最多只有15种饲料,2^15 = 不算大,在我的程序中使用了Gray码来增加速度,下面介绍一下 Gray是一种二进制编码,如下是一个0至7的Gray码,共8个 000 001 011 010 110 111 101 100 Gray的特点就在于每两个相邻的编码只有一位不同,从这一点可以联想到如果我们使用Gray码来表示哪些饲料被使用(1表示使用,0表示不用)... 阅读全文
posted @ 2008-12-02 17:21 刘永辉 阅读(323) 评论(0) 推荐(0)
USACO_2_1_Sorting a Three-Valued Sequence
摘要:简单题目 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: sort3 LANG: JAVA complete date: 2008/12/2 complexity: O(n) aut... 阅读全文
posted @ 2008-12-02 14:56 刘永辉 阅读(191) 评论(0) 推荐(0)
USACO_2_1_Ordered Fractions
摘要:这道题,一开始我也是想着先列出所有的数,然后使用快速排序,不过在网上看见一个很不错的解决方法,大概代码如下: void print(n1,n2,d1,d2) { print(n1,n1+n2,d1,d1+d2); 输出 n1+n2,d1+d2; print(n1+n2,n2,d1+d2,d2); } 初始时调用 print(0,1,1,1); 下面做一下解... 阅读全文
posted @ 2008-12-01 15:07 刘永辉 阅读(347) 评论(0) 推荐(0)
USACO_2_1_The Castle
摘要:终于打到第二关了,这道题还算简单,属于模拟类型的题,一个重点就是使用深度优先搜索给每个module编号,属于同一个房间的module编号相同,编好号 后其它问题都好办了 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* I... 阅读全文
posted @ 2008-11-27 16:59 刘永辉 阅读(325) 评论(0) 推荐(0)
USACO_1_5_Checker Challenge
摘要:读了这题题目后都不敢用java写了,这道题我用的是c++ 这道题需要使用位运算,否则最后一个数据会超时,做一点核心提示,如下图是一个6×6的棋盘,其中有两个位置放置了棋子: _ _ _ _ _ * _ _ _ * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 现在我们需要在第2行放棋子了(最上面一行是第0行),那么可以放在哪些位置呢? ... 阅读全文
posted @ 2008-11-26 16:14 刘永辉 阅读(532) 评论(0) 推荐(0)
USACO_1_5_Superprime Rib
摘要:很简单的一道题,使用深度优先搜索,注意一点,Superprime数的第一个数字只能是2、3、5、7,而除了2、5的其它素数的个位数必然是1、3、7、9 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1... 阅读全文
posted @ 2008-11-24 15:38 刘永辉 阅读(203) 评论(0) 推荐(0)
USACO_1_5_Prime Palindromes
摘要:这道题我用枚举搜索,比如说要求出150到50000之间的所有Prime Palindromes,那么就枚举所有长度等于3和5的回文,然后判断这个回文是否为素数,注意一点,成都为偶数的回文一定能整除11,所以程度为偶数的回文只有11是素数,因此我们只需要判断长度为基数的回文。 那么如何枚举出长度为5的所有回文呢? 可以对回文的左边3个数字进行枚举,如左边3个数字为100,那么回文就是10001,然后... 阅读全文
posted @ 2008-11-23 19:52 刘永辉 阅读(311) 评论(0) 推荐(0)
USACO_1_5_Number Triangles
摘要:非常简单的动态规划,不说了~~~ Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: numtri LANG: JAVA complete date: 2008/11/23 author... 阅读全文
posted @ 2008-11-23 15:16 刘永辉 阅读(241) 评论(0) 推荐(0)
USACO_1_4_Mother's Milk
摘要:又是深度优先搜索,枚举,为了不出现无限循环,为了所出现的每种状态(三个杯子现有milk数)仅考虑一次,使用isAppeared变量来记录某种状态是否已经出现过。 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdj... 阅读全文
posted @ 2008-11-22 16:59 刘永辉 阅读(267) 评论(0) 推荐(0)
USACO_1_4_Arithmetic Progressions
摘要:这道题用蛮力搜索很简单,但我却花了不少时间,昨天下午写了一个搜索的代码,结果在第8个数据超时(用了5.4秒,java比c++效率低),然后我就优化了半天,改动了许多部分,结果还是过不了,今天中午来重新写了个动态规划的程序,原本以为动态规划会快许多,结果犯了一个低级错误!为了给动态规划方法作备忘录需要开的内存空间不是一般的大!写完后才发现这个错误,然后又把所写代码全部删掉,还原成跟昨天差不多的样子,... 阅读全文
posted @ 2008-11-22 14:45 刘永辉 阅读(311) 评论(0) 推荐(0)
USACO_1_4_The Clocks
摘要:还是用深度优先搜索,枚举每个方案使用的次数,最多有4^9=262144种情况,在加上剪枝可以更快,我是这样剪枝的,比如说当确定前4种方案各用几次后,就可以判断左上角的钟是否指向12点,因为后面的方案不会让左上角的钟转动,如果没有指向12点,则就不要继续深度搜索(在代码中对应checked(3) == false,注意代码中都是从0计数),等等 Code Code highlighting ... 阅读全文
posted @ 2008-11-20 16:55 刘永辉 阅读(476) 评论(0) 推荐(0)
USACO_1_4_Packing Rectangles
摘要:这道题使用搜索,就如题目中所说的那样,四个矩形无论如何摆都可以归纳为6种方案中的一种,先用深度优先搜索枚举出4个矩形(以及横、竖摆放)的排列,然后考虑用这6种摆法哪种摆法面积最小,注意观察会发现,情况4、5求出的面积是一样的,所以略去情况4,共有5种情况 Code Code highlighting produced by Actipro CodeHighlighter (freeware)h... 阅读全文
posted @ 2008-11-18 20:28 刘永辉 阅读(470) 评论(0) 推荐(0)
USACO_1_3_Prime Cryptarithm
摘要:很久没有做题了,这道题我用搜索加剪枝,很简单的 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/* ID: sdjllyh1 PROG: crypt1 LANG: JAVA complete date: 2008/11/16 autho... 阅读全文
posted @ 2008-11-16 15:29 刘永辉 阅读(382) 评论(0) 推荐(0)
Usaco_1_3_Calf Flac
摘要:很长时间没有进展了 今天终于把这道题做了 不过java的代码在第8个数据时还是超时 方法为先写一个RMQ(在数组区间中访问最小元素), 然后用RMQ写一个SuffixArray(后缀数组), 再用SuffixArray写一个LongestPalindrome(在数组中寻找最长回文) 关于RMQ见:http://www.cnblogs.com/SDJL/archive/2008/1... 阅读全文
posted @ 2008-10-30 17:19 刘永辉 阅读(363) 评论(0) 推荐(0)
USACO_1_3_Barn Repair
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: barn1 LANG: JAVA complete date: 2008/10/7 efficiency: O(c * lg(c)) author: L... 阅读全文
posted @ 2008-10-07 17:07 刘永辉 阅读(975) 评论(4) 推荐(0)
USACO_1_3_Mixing Milk
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: milk LANG: JAVA complete date: 2008/10/6 author: LiuYongHui From GuiZhou Uni... 阅读全文
posted @ 2008-10-06 17:37 刘永辉 阅读(494) 评论(2) 推荐(0)
USACO_1_2_Dual Palindromes
摘要:这段java代码在第三个数据时超时,目前不知道如何解决这个超时问题,同样的程序用c++写就不会超时 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//* ID: sdjllyh1 PROG: dualpal LANG: JAVA compl... 阅读全文
posted @ 2008-09-25 16:53 刘永辉 阅读(351) 评论(3) 推荐(0)

上一页 1 2 3 下一页