[2010-8-22]

  1.刚做了一道动态规划题,题目很明显是在教育动态规划。把已经有的复杂递归函数给出,然后要求在限定时间内求解,使用那函数是不可能在限定时间内求解的,因为递归非常深。然后使用动态规划却可以在0MS内解决,更重要的是,在构造动态规划矩阵的过程中,使用的计算公式跟递归公式一模一样,这就给了一个启示。对于复杂问题,如果能求出递归公式,则先求出递归公式,然后转换成动态规划矩阵!

  2.刚又做了一经典题目,求N!的最低非0位数字,本以为挺简单,只要不断进行个位相乘,然后消除0就可以,但原来这样不行,因为会出现连续进位的情况,例如25 × 4,如果只保留5,那么就变成5×4,那么下一次乘法的各位就从1(00)变成错误的2(0),因此对于每次相乘后的结果,消除尾0后,还不能简单模10,最正确的情况是把上次相乘的结果消除尾0后完全保留,那才是正确的,这样允许无限长的连续进位,但这样就跟使用高精度乘法没分别了,于是鉴于题目的数据最大是10000!,我不断尝试,发现模100000就可以了,等效于允许连续进5位,即连续5个尾0,然后再保存上次相乘结果消除尾0后的前5位。

posted @ 2010-08-24 15:55  DOF_KL  阅读(121)  评论(0编辑  收藏  举报