"动态规划"解决机器分配问题:最大盈利算法及C++代码实现\n\n总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。\n\n\n输入\n输入数据文件格式为:第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。\n\n接下来是一个N*M的矩阵,表明了第 I个公司分配 J台机器的盈利。\n\n\n输出\n输出第一行为最大盈利值;\n\n\n输入样例 1 \n\n3 3 \n30 40 50\n20 30 50\n20 25 30\n输出样例 1\n\n70\nc++代码内容:#include \n#include \nusing namespace std;\n\nint main() {\n int N, M;\n cin >> N >> M;\n\n vector<vector> profit(N, vector(M, 0));\n for (int i = 0; i < N; i++) {\n for (int j = 0; j < M; j++) {\n cin >> profit[i][j];\n }\n }\n\n vector dp(M + 1, 0);\n for (int i = 0; i < N; i++) {\n for (int j = M; j >= 0; j--) {\n for (int k = 0; k <= j; k++) {\n dp[j] = max(dp[j], dp[j - k] + profit[i][k]);\n }\n }\n }\n\n cout << dp[M] << endl;\n\n return 0;\n}

动态规划解决机器分配问题:最大盈利算法及C++代码实现

原文地址: https://www.cveoy.top/t/topic/pAZ7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录