问题描述大概是这样
就是给定一个n(n在int范围内) 问你最少可以用几个1通过 + - * () 这些运算符号得到n
我的思路是DP做,
  F(n)=min{F(n/i)+F(i)}  当n%i==0
  F(n)=min{F(n+1)+1,F(n-1)+1} 当n为素数的时候 
就用上面的公式做,也就是给一个数我们先分解,如果可以分解就分解做,一旦一个数都不能分解的话就+1 -1 来做。(正确性有待检验,高手们多多指点)
现在问题是我用备忘录进行DP,当n的范围一大,无疑这个数组会超内存,内存限制1M。
现在我不懂该怎么办了,有没有好的想法,开大数组存肯定是不行的了。大家说说有什么好的想法或建议。谢谢