现在的位置: 首页 > 综合 > 正文

HDU 4737 F(x) (数位DP)

2014年07月20日 ⁄ 综合 ⁄ 共 364字 ⁄ 字号 评论关闭

题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=4734

题意 : 给两个数A,B然后定义:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1, An,An-1...是X各个位上的数字。求从[0, B]有多少个数x满足F[x] <= F[A]

PS :这是今年成都网络赛的一道题目, 比赛的时候我虽然知道这是一道数位DP, 但是因为有个T,而且每次要更新这个F[A]感觉有点麻烦, 时间又只有500ms,后来我记忆化搜索+剪枝才弄掉了它, 开的状态是dp[现在进行到len位][现在加起来的总数是sum]。 现在有了更好的方法。

思路 :数位DP,开一个dp[现在进行到了len位][现在还剩下res], 这样就不用每次重新计算F[A]了,不用更新dp数组了。

看代码 :

234ms :

15ms :

抱歉!评论已关闭.