美文网首页
投资问题(动态规划)

投资问题(动态规划)

作者: 张的笔记本 | 来源:发表于2019-12-08 19:38 被阅读0次
#include <iostream>
#define M 5//总钱数M万
#define N 4//总项目数N
using namespace std;
//收益函数:一共四个项目,每个项目下标为投入钱数,数组值为取得的收益
int f[N][M + 1] = {
    {0, 11, 12, 13, 14, 15},
    {0,  0,  5, 10, 15, 20},
    {0,  2, 10, 30, 32, 40},
    {0, 20, 21, 22, 23, 24}
};
int mem[M][N];//备忘录
int d[M][N];//记录与分配相关,eg:d[4][3]记录的是5万元分配给前4个项目时,第四个项目分配了多少钱
int Invest_Promble(int m, int n)//用不超过m元钱投资前n个项目
{
    int i, F, temp0, temp1;
    temp0 = mem[m - 1][n - 1];
    if(temp0 != 0){
        return temp0;
    }
    else{
        F = f[n - 1][m];
        if(n == 1) d[m - 1][n - 1] = m;
        else{
            for(i = m - 1; i >= 0; --i){
                temp1 = f[n - 1][i] + Invest_Promble(m - i, n - 1);
                if(temp1 > F){
                    F = temp1;
                    d[m - 1][n - 1] = i;
                }
            }
        }
        mem[m - 1][n - 1] = F;
        //cout<<m<<" "<<n<<" "<<F<<endl;
        return F;
    }
}
void Distribution(int m, int n)
{
    if(n == 0) return;
    int temp = d[m - 1][n - 1];
    cout<<"项目"<<n<<"投入:"<<temp<<"万元"<<endl;
    Distribution(m -= temp, --n);
} 
int main()
{
    cout<<"最大收益:"<<Invest_Promble(M, N)<<"万元"<<endl;
    Distribution(M, N);
    return 0;
}

原理参见 屈婉玲老师 算法设计与分析 ORZ

相关文章

  • 投资问题(动态规划)

    原理参见 屈婉玲老师 算法设计与分析 ORZ

  • 浅层理解动态规划及利用动态规划解决最长公共子串等问题

    动态规划基本思想 动态规划的工作原理是先解决子问题,再逐步解决大问题。 用动态规划解决旅游规划问题 目前面对的问题...

  • 什么是动态规划

    目录 动态规划解决了什么 什么是动态规划 典型的动态规划 1. 动态规划解决了什么 的思想就是将大问题拆分成小问题...

  • 算法学习收藏

    动态规划问题 动态规划(最优子结构和重叠子问题的比较) 动态规划解决01背包问题 01背包问题 最优二叉查找树 《...

  • 其他来源:数据结构/算法学习笔记

    动态规划问题(Dynamic Programming) 首先,动态规划问题的一般形式就是求最值。动态规划其实是运筹...

  • 2022-02-19 动态规划高频题专题【1】

    动态规划基本类型 dp基础 背包问题 打家劫舍 股票问题 子序列问题 进阶动态规划 深入理解动态规划过程 定义dp...

  • 投资组合问题

    动态规划合集: 1.矩阵链乘法2.投资组合问题3.完全背包问题4.01背包问题5.最长公共子序列 例题2——投资问...

  • 337. House Robber III

    key tips 动态规划返回两个状态 algorithm 1 尝试动态规划问题存在子问题结构,首先考虑动态规划在...

  • 动态规划(1)

    什么动态规划 动态规划是一种解决棘手问题的方法,它将问题分成小问题,并着手先解决这些小问题 动态规划的使用场景 g...

  • 算法3:动态规划

    5.动态规划5.1 什么是动态规划?5.2 自底向上的动态规划:5.3 自顶向下的动态规划5.4 0-1背包问题:...

网友评论

      本文标题:投资问题(动态规划)

      本文链接:https://www.haomeiwen.com/subject/mqbmgctx.html