2012年9月21日

Apple Catching POJ 2385

摘要: 题意:有两棵苹果树,标号分别为1,2。每分钟有其中的一棵树会掉下一个苹果,奶牛一分钟只能在其中一棵树下接到苹果,但她不知道下一分钟会是那棵树掉下苹果,所以她就要在两棵树下来回跑。但她只会在树下跑W次。问你在T分钟内,奶牛bessie最多能接到多少苹果。题解:一道简单的DP。先给出状态转移方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+count。这里的dp[i][j]代表在第i分钟移动j次最多能接到的苹果数。在第i分钟奶牛到某棵树下有两种状态:1.从另一棵树走过来(dp[i-1][j-1])2.本来就呆在这棵树下(dp[i-1][j])。所以在第i分钟时能接到 阅读全文

posted @ 2012-09-21 11:24 Acmer_Roney 阅读(996) 评论(0) 推荐(0) 编辑

2012年9月20日

BUY LOW, BUY LOWER POJ 1952

摘要: 题意:给你每一天股票的价格,让你求出最长的递减子序列长度及该长度的子序列共有几个。这里要注意题目表明如果两个子序列的元素都相同,则这两个子序列只能算作一个。题解:两次DP。首先求出最长的递减子序列的长度,状态转移方程为dp[i]=max(dp[j])+1;(0<=j<i);(下标从0开始)其中dp[i]表示以第i个数结尾的最长递减子序列的长度。这里在最后加一个dp[n]=-1,具体为什么在下一步讲述。 然后求每一种长度的递减子序列共有几个。状态转移方程:count[i]=sum(coun[j]);(其中a[i]<a[j]&&dp[j]+1==dp[i]);co 阅读全文

posted @ 2012-09-20 22:25 Acmer_Roney 阅读(566) 评论(0) 推荐(1) 编辑

2012年9月18日

T9 poj 1451 hdu 1298

摘要: 题意:就是让你模拟手机输入单词。具体就是给你一些单词,以及该单词被使用的频数,这个频数也是该单词前缀的使用频数,当然不同的单词有可能有相同的前缀,那么这个相同的前缀的使用频数就是这两个单词使用频数之和,以此类推。然后再给你一些数字串,让你针对该数字串的每一个前缀输出它的最有可能对应的单词(即频数最大的字符串)。题解:字典树+深搜。对输入的字符串建立字典树每个节点中存储相应的前缀的使用频数。然后对输入的数字串枚举其每一个前缀在字典树中进行深度优先搜索,因为一个数字对应3-4个字母,因此深搜时就要枚举每一个对应的字母。 一开始就是这样的想法,但觉得这样的方法很可能会超时。因为这种方法的查找效率很低 阅读全文

posted @ 2012-09-18 21:26 Acmer_Roney 阅读(234) 评论(0) 推荐(0) 编辑

2012年9月15日

Word Puzzles poj 1204

摘要: 转载请注明出处,谢谢。http://www.cnblogs.com/acmer-roney/archive/2012/09/15/2686997.html ——by Roney.题意:给你一些字符串矩阵,再给你一些字符串,让你在字符串矩阵中找出给你的每一个字符换的首字母的坐标和这个字符串在字符矩阵中的方向,并且要求按所给字符串顺序输出上述信息。题解:字典树+BFS。用一个二维矩阵存储字符矩阵,用字典树结构存储所给的字符串,并在字典树的结构中用一个变量记录该字符串是第几个输入的。然后对于字符矩阵的每一个位置向八个方向进行搜索并与字典树中存储的字符串进行匹配,一旦与字典树中的某一个字符串匹配成功就 阅读全文

posted @ 2012-09-15 21:54 Acmer_Roney 阅读(421) 评论(0) 推荐(0) 编辑

2012年9月14日

几道字典树基础题

摘要: 转载请注明出处,谢谢。http://www.cnblogs.com/acmer-roney/---by RoneyWhat Are You Talking About HDU 1075题意:给你一些火星文单词和对应的英文单词,再给你一些火星文让你翻译成英文。题解:字典树的简单应用。插入单词时,在单词的根位置记录下对应的英文,再用一个标记变量标记一下,方便查找。AC代码:View Code 1 #include<cstdio> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 阅读全文

posted @ 2012-09-14 20:46 Acmer_Roney 阅读(337) 评论(0) 推荐(0) 编辑

2012年9月12日

Flying to the Mars HDU 1800(字典树)

摘要: 转载请注明出处,谢谢。http://www.cnblogs.com/acmer-roney/---by Roney题意:给你一串数字,代表士兵的等级,等级高的士兵可以教等级地的士兵,但要求每个士兵最多只能教一个士兵,且每个士兵最多是能有一个老师。抽象的说就是,将一串数尽可能少的分成几组满足每一组里的数字各不相同。解题思路:理解题意了,解法就很明朗了。很容易想到的就是贪心,可是此题给出的数据多达30位,用long long或doube都无法存储,所以只能用字符串来存储。所以又可以想到用字典树!在插入字符串时只要统计最多有多少个相同的字符串就可以了。但是这里要注意一点,字符串有前导0!所以在插入时 阅读全文

posted @ 2012-09-12 08:41 Acmer_Roney 阅读(196) 评论(0) 推荐(0) 编辑

2012年9月11日

字典树

摘要: 转载请注明出处,谢谢。http://www.cnblogs.com/acmer-roney/---by Roney【本文摘自百度文库】综述 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。性质 它有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。每个节点的所有子节点包含的字符都不相同。.. 阅读全文

posted @ 2012-09-11 15:37 Acmer_Roney 阅读(199) 评论(0) 推荐(0) 编辑

2012年9月8日

AGTC POJ 3356

摘要: View Code 1 #include 2 #include 3 #include 4 int min(int a,int b,int c){ 5 int temp=a>b?b:a; 6 return temp>c?c:temp; 7 } 8 const int N=1010; 9 char a[N],b[N];10 int operations(int m,int n){;11 int **dp=new int*[m+1];12 for(int i=0;i<=m;i++)13 dp[i]=new int[n+1];14 dp[0][... 阅读全文

posted @ 2012-09-08 10:54 Acmer_Roney 阅读(168) 评论(0) 推荐(0) 编辑

2012年9月7日

Substring Frequency LightOJ - 1255

摘要: 转载请注明出处,谢谢。http://www.cnblogs.com/acmer-roney/---by RoneySubstring FrequencyTime Limit: 1000MSMemory Limit: 65536KB64bit IO Format: %lld & %llu[Submit] [Go Back] [Status] DescriptionA string is a finite sequence of symbols that are chosen from an alphabet. In this problem you are given two non-e 阅读全文

posted @ 2012-09-07 22:00 Acmer_Roney 阅读(268) 评论(0) 推荐(0) 编辑

二分查找法的实现和应用汇总

摘要: 此文转自:http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度。时间复杂度按优劣排差不多集中在:O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n)到目前位置,似乎我学到的算法中,时间复杂度是O(log n),好像就数二分查找法,其他的诸如排序算法都是 O(n log n)或者O(n2)。但是 阅读全文

posted @ 2012-09-07 16:55 Acmer_Roney 阅读(436) 评论(0) 推荐(0) 编辑

导航