摘要: *题意: 给出一个字符串,如果将字母表中的26个字母依次映射成数字1-26,这样便形成一个码,虽然加密的确很方便,可是解密存在很多种解密的方法,现在给出一串数字,要求求解该串数字有多少种解密方法.*思路:典型的动态规划,我们可以先1-3个数字的例子来模拟一下过程,思路有很多,暂时先介绍两个。思路(一):用dp[i]表示到当前数字为止时最多的解密方式种数,str[i]表示当前数字,所以有如下分析:1.可以与前一项合并解密也可以单独解密:dp[i]=dp[i-1]+dp[i-2],其中dp[i-1]表示不与前一个数合并解密,dp[i-2]表示当前数已经与前一个数合并解密。2.必须与前一个数字... 阅读全文
posted @ 2013-08-07 21:31 Neptunes 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 关于动态规划(dp),首先它非常重要,用老师的话说就是:要是动态规划这里出了问题,那最好退出。对于其定义网上很多这里不再赘述,在这里就记录一下自己作为一个初学者(甚至称不上初学)它的几点理解。(一)学习感悟:对于一个问题还是比较容易确定是否采用动态规划的,因为它是用来求最优值的,一旦题目中有和最优相关的词语就得考虑一下它了(虽然不一定用)。假如做过的题多了,根据经验是比较容易确定的。但是动态规划定义虽然简单,用起来却是另一回事。即使你知道要用动态规划却不一定真正根据题目应用好,由于现在自己做看题目很少(数一下也就背包,最大字段,最长公共子序列,基因匹配,最大矩阵连乘积等),仅仅能做那几道相似的 阅读全文
posted @ 2013-08-07 20:33 Neptunes 阅读(2100) 评论(0) 推荐(0) 编辑