动态规划挖金矿问题——python实现
最近在复习动态规划问题,在处理挖金矿问题的时候发现网上以python实现的代码很少,于是自己整理一份。
问题描述:漫画图解
公式和讲解都在上面链接的网页里面,有一点需要说明他的图片结果是错的:
我自己手写了一份:
代码不知道对错,没有用java去写,直接上代码,注释写的自认为比较全,不会的好好理解下。
import copy
def good(n,w,g=[],p=[]):# n为金矿数,w为人数,g为金矿数组,p为人数数组arr = [0]*wfor i in range(w):if (i+1)>=p[0]: # i为坐标, i+1为人数arr[i] = g[0]res = copy.deepcopy(arr) #深copyprint(res)# 上面为只有一个金矿的情况for i in range(1,n): # 金矿数for j in range(w): # 人工数if (j+1)<p[i]: # j为坐标, j+1为人数arr[j] = res[j] #和上一次情况相同else:t = 0 if (j-p[i])<0 else j-p[i] #防止负数取到后面的值arr[j] = max(res[j],res[t]+g[i]) #挖和不挖第i座金矿比较取大#res[t]+g[i] 为 挖第i座金矿的情况,res[已有人数 - 第i座所需人数]+第i座金子g[i]res = copy.deepcopy(arr)print(res)return res.pop()if __name__ == '__main__':res = good(5,10,[400,500,200,300,350],[5,5,3,4,3])print(res)
用到了深copy,不理解的去Baidu查一下,python里有拷贝,浅拷贝和深拷贝。
另外,有什么错误的地方欢迎大家指出。
动态规划挖金矿问题——python实现相关推荐
- dpresult在python中什么意思_动态规划(DP)的整理-Python描述
今天整理了一下关于动态规划的内容,道理都知道,但是python来描述的方面参考较少,整理如下,希望对你有所帮助,实验代码均经过测试. 请先好好阅读如下内容--什么是动态规划? 摘录于<算法图解& ...
- 动态规划(DP)的整理-Python描述
今天整理了一下关于动态规划的内容,道理都知道,但是python来描述的方面参考较少,整理如下,希望对你有所帮助,实验代码均经过测试. 请先好好阅读如下内容–什么是动态规划? 摘录于<算法图解&g ...
- java回调函数的生命_Java车票,车站,生命周期,龟兔赛跑,同步锁,礼让,守护线程,挖金矿【诗书画唱】...
个人理解:加同步锁等的时候,就可以让线程"按顺序排队",一个一个地抢CPU,一个抢完对应的每次有的CPU了,另一个才抢对应的每次有的CPU,解决"并发"问题等. ...
- python动态规划详解_经典动态规划例题整理(Python版)
由于本人的算法基础较为薄弱,所以在这里整理一下自己的做过的题,使自己能够随时随地回顾温习. 然后,本篇文章将会持续更新自己遇到的一些比较经典动态规划的题目,大家如果对代码有任何问题,直接在文章下面评论 ...
- python典型例题_经典动态规划例题整理(Python版)
由于本人的算法基础较为薄弱,所以在这里整理一下自己的做过的题,使自己能够随时随地回顾温习. 然后,本篇文章将会持续更新自己遇到的一些比较经典动态规划的题目,大家如果对代码有任何问题,直接在文章下面评论 ...
- 整数划分问题 递归 动态规划 openjudge 百练 python
4117:简单的整数划分问题 http://bailian.openjudge.cn/practice/4117 4119:复杂的整数划分问题 http://bailian.openjudge.cn/ ...
- 百度上线百度金矿,个人电脑也可以挖金矿
百度金矿号称一个可以让个人电脑利用闲置网络资源赚钱的软件,这种软件近几年好几家公司都有做过尝试,迅雷,小米等互联网公司都有搞过. 这种模式有点像比特币不过之前有试过迅雷的确实不太理想,百度金矿也只是 ...
- 人工智能变现难?这家AI挖金矿公司已上市
"变现"是当下阶段人工智能公司面临最重要的难题,表面看来人工智能已经在安防.医疗.教育.智能手机.汽车.金融等诸多行业纷纷落地,但这些行业实际上能产生的营收并不十分乐观.而且诸多均 ...
- 198. House Robber 的递归与动态规划实现方法(Python)
目录 背景 实现方法 Step 1. 确定递归关系 Step 2. 递归方法实现 (top-down) Step 3. 递归方法 + 过程存储 实现 (top-down) Step 4. 迭代方法 + ...
- 【动态规划模型】金矿模型理解动态规划!(精彩的故事)
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
最新文章
- 还在为学习Python没有路线发愁吗?
- 独立云计算服务商的多维实践之道:用户需求驱动变革
- 通用类 RemoteUpload 远程上传从其他网站复制过来的图片
- MYSQL 命令【精华帖】
- rust(51)-rust工具,prelude
- python编写正则表达式匹配单词_Python正则表达式匹配整个单词
- 学习 AngularJs 终于有点进步了。
- Unity3d(UE4)动态加载osgb倾斜摄影数据
- Effective Modern C++ 第三章第一节,C++新特性:初始化、nullptr、alias别名、enum
- 如何在 Mac 上更改 Safari 背景?
- hdu 4828 Grids(拓展欧几里得+卡特兰数)
- Lucene创建索引与搜索索引试手
- OpenCV-Python教程(5、初级滤波内容)
- 常用串口监控软件:Accessport,ComMonitor,Device Monitoring Studio
- 爬虫学习之抓取今日头条街拍美图
- 如何解决DNS解析错误
- 解决80端口被svchost.exe进程占用的问题
- 详解VB对话框InputBox和MsgBox
- 小甲鱼Python第十九讲(函数,我的地盘听我的)
- MinMax极小极大算法 (The Minimax Algorithm)
热门文章
- Python—Django中的视图(views.py)
- java中求数组中最大值
- WindowsXP SP3 AFD.sys 本地拒绝服务漏洞的挖掘过程
- xp访问计算机组提示没有权限,WindowsXP系统提示没有权限使用网络怎么办
- 基于CNN的SEEG/EEG脑电数据处理分析
- Java如何处理前端传过来的Base64图片
- MySQL数据库之分库分表方案
- 计算机磁盘坏道怎么隔离,小科普 | 硬盘坏道就凉凉?把它隔离出去吧!(DLC)...
- 【分享】哪个OS X版本支持哪个Xcode的版本?
- JavaScript ES6新特性