挖金矿问题(c++求解)
n个金矿,共有w个工人(目前可以用的人数),F收益
F(n,w)
//递推函数
//n个金矿,共有w个工人(目前可以用的人数),F收益
//F(n,w)//那么该问题的边界值如下:
//
//当w=0且w<p[0],则F(1,w)=0 当目前人数为0,且小于第一个矿的所需工人数目,此时获益为0
//当w=0且w>p[0],则F(1,w)=g[0] 当目前人数为0,但大于第一个矿的所需工人数目,此时获益为第一个矿产数 #include<bits/stdc++.h>
using namespace std;int getVal(int n, int w, int g[], int p[])
{int res[n + 1][w + 1];for(int i = 0; i <= n; i++){for(int j = 0; j <= w; j++){res[i][j] = 0;}}for(int i = 0; i <= n; i++){for(int j = 0; j <= w; j++){cout<<res[i][j]<<" ";}cout<<endl;}for (int i = 1; i <= n; i++) {for (int j = 1; j <= w; j++) {//当当前人数不满足于挖当前矿,为什么pg都要i-1,因为它们是从0开始存储的 if (j < p[i-1])res[i][j] = res[i-1][j];elseres[i][j] = max(res[i-1][j],res[i-1][j-p[i-1]]+g[i-1]);}}for(int i = 0; i <= n; i++){for(int j = 0; j <= w; j++){cout<<res[i][j]<<" ";}cout<<endl;}return res[n][w];
}int main()
{int g[5] = {400, 500, 200, 300, 350};int p[5] = {5, 5, 3, 4, 3};int ans = getVal(5, 10, g, p); cout<<ans;return 0;
}
挖金矿问题(c++求解)相关推荐
- java回调函数的生命_Java车票,车站,生命周期,龟兔赛跑,同步锁,礼让,守护线程,挖金矿【诗书画唱】...
个人理解:加同步锁等的时候,就可以让线程"按顺序排队",一个一个地抢CPU,一个抢完对应的每次有的CPU了,另一个才抢对应的每次有的CPU,解决"并发"问题等. ...
- 百度上线百度金矿,个人电脑也可以挖金矿
百度金矿号称一个可以让个人电脑利用闲置网络资源赚钱的软件,这种软件近几年好几家公司都有做过尝试,迅雷,小米等互联网公司都有搞过. 这种模式有点像比特币不过之前有试过迅雷的确实不太理想,百度金矿也只是 ...
- 人工智能变现难?这家AI挖金矿公司已上市
"变现"是当下阶段人工智能公司面临最重要的难题,表面看来人工智能已经在安防.医疗.教育.智能手机.汽车.金融等诸多行业纷纷落地,但这些行业实际上能产生的营收并不十分乐观.而且诸多均 ...
- 【面试经典】求解金矿问题(动态规划初级)
问题:有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同(情况如下图) 金矿编号 黄金储量 需要人数 1 400 5 2 500 5 3 200 3 4 300 4 5 35 ...
- 动态规划:国王与金矿
题目解析 有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同.参与挖矿工人的总数是10人.每座金矿要么全挖,要么不挖,不能派出一半人挖取一半金矿.要求用程序求解出,要想得到尽 ...
- 【动态规划模型】金矿模型理解动态规划!(精彩的故事)
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
- 【转载】通过金矿模型介绍动态规划 (动态规划入门)
先附上原文地址:http://www.cnblogs.com/sdjl/articles/1274312.html 通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第 ...
- 动态规划入门之国王的金矿
最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...
- 通过金矿模型介绍动态规划
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
- 通过金矿模型介绍动态规划(经典入门)
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
最新文章
- Golang下的Log处理
- 项目调试之小工具---文件名替换
- Security:CSRF
- 一个不错的游戏 - flash webgame
- 使html表格可编辑状态,js+Html实现表格可编辑操作
- python创建虚拟环境报错typeerror_python 创建虚拟环境时报错OSError, setuptools下载失败...
- Kubernetes 使用 Ingress-nginx 实现灰度发布功能
- .Net C# Newtonsoft.Json JsonSerializerSettings配置
- 矩阵的转置例题MATLAB,MATLAB特殊矩阵以及矩阵转置
- scratch课程案例——蜘蛛森林
- ping一下网站服务器的域名,怎么PING一个网站的域名
- 清华大学计算机夏文韬,太猛了--南京外国语学校2007届高三毕业生去向
- 面试官:如何设计群聊消息的已读未读功能?
- linux之ps aux、ps -aux、ps -ef命令的区别
- Mooc_AutoCAD绘制建筑施工图_单元平面图测验题
- HBase系列(一):HBase表结构及数据模型的理解
- 利用USRP探索软件无线电(2)
- IDEA打可执行jar包详细教程(包含依赖的所有jar包)
- 如何在双系统下删除linux系统
- ubuntu amd驱动