当前位置:   article > 正文

最佳加法表达式(动态规划)_输入整个加法表达式,请计算加法表达式的结果。

输入整个加法表达式,请计算加法表达式的结果。

题目:有一个含有n个1-9的数字,在中间加m个加号,求最小的结果

思路:动态规化,利用递归,v(n,m)。

举个例子吧

12345 

5个数字中加入2个加号,此时n=5,m=2

假设最后一个加号在4后面,则1+234+5或12+34+5或123+4+5

假设最后一个加号在3后面,则1+23+45 或 12+3+45,

假设最后一个加号在2后面,则1+2+345

看到共同点了吗,当把最后的加号加到第i个数字后面时,后面的数字就不变

如例1最后是加5,例2最后是加45,例3最后是加345

那么,接下来呢?

我们只需要按照这个原理递归求前面的的就行了

如例1就是求1234的最小值,例2就是求123的最小值,例3就是求12的最小值(中间一个加号)


以下是代码:

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <cmath>
  5. #include <cstdlib>
  6. #include <cstring>
  7. #include <vector>
  8. #include <list>
  9. #include <map>
  10. #include <stack>
  11. #include <queue>
  12. using namespace std;
  13. #define
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/703665
推荐阅读
相关标签
  

闽ICP备14008679号