最火的瓜,得用动态规划来吃

  • 一、 递归树分析
  • 二、 动态规划的代码
  • 三、 与妹子沟通是个技术活

今天真是被罗志祥的大瓜砸到了!全网络都是关于“小猪”的新闻,这前女友公开吃瓜确实强悍!

“小猪”是怎么管理时间的?作为程序员,感觉这是一个很有技术的优化问题,称为动态规划~!
你不懂?
没关系,我快速教会你。

一、 递归树分析

直接掏出大杀器“递归树“”进行分析。
先来把数据整理一下:

愉悦度 = [60, 100, 120]
时间成本 = [10, 20, 25]
总时间 = 30
总人数 = 3

构造函数tm(总时间 , 时间成本 , 愉悦度 , 总人数),我们可以先分析c小姐:

无非两种情况,约和不约,如果在最优方案里面约c小姐,那你就应该在总时间30里面减去25,同时收获愉悦度+120,如果不约最优方案里面你可以使用的时间还是30。
不管你约或者不约,接下来我们都不用考虑c小姐对最优方案的影响了。
接下来我把完整的递归树画出来,因为空间问题,我省略了不变的时间成本和愉悦度参数。

这里需要说明的是比如b小姐的tm(5-20,1)这种情况,说明剩下的时间不满足约会b小姐,所以可以跳过这种情况,直接5小时保持不变,直接考虑下一种“总人数-1”的情况,本例中就是"1-1",所以下一种情况的表达函数就是tm(5, 0)。自然在这种情况下,也不能收获愉悦度。
还有就是当总人数为0,或者总时间为0的时候,我们直接返回0就好,这个时候的情况就是要么是没有人可以约了,要么就是没有时间可以约人了,所以也就没有办法收获愉悦度了。
`

二、 动态规划的代码

经过递归树的分析,如果规模比较大,你会发现有很多子问题都重复计算了,这个时候你就可以利用用空间换时间的思想去优化你代码的时间复杂度,这也就是动态规划的最后一步。
最开始直接用递归解决的代码

def tm(total_time , time_cost , profit , n): if n == 0 or total_time == 0 : return 0if time_cost[n-1] > total_time:res = ans(total_time , time_cost , profit , n-1) return reselse: res =  max(profit[n-1] + tm(total_time-time_cost[n-1] , time_cost , profit , n-1), tm(total_time , time_cost , profit , n-1)) return resprofit = [60, 100, 120]
time_cost = [10, 20, 25]
total_time = 30
n = len(profit) print(tm(total_time , time_cost , profit , n))

加上cache之后,从上到下进行优化的代码

def tm(total_time , time_cost , profit , n): if n == 0 or total_time == 0 : return 0if dp[n-1][total_time-1] != 0 :return dp[n-1][total_time-1]if time_cost[n-1] > total_time:res = ans(total_time , time_cost , profit , n-1) dp[n-1][total_time-1] = resreturn reselse: res =  max(profit[n-1] + tm(total_time-time_cost[n-1] , time_cost , profit , n-1), tm(total_time , time_cost , profit , n-1)) dp[n-1][total_time-1] = resreturn resprofit = [60, 100, 120]
time_cost = [10, 20, 25]
total_time = 30
n = len(profit)
dp = [[0] * (total_time) for _ in range(n)]
print(tm(total_time , time_cost , profit , n))

三、 与妹子沟通是个技术活

很多人做觉得算法只是解决工程问题,其实生活中的各种问题你都可以用算法的视角去观察。
只有这样你才会发现像“小猪”这样的高手!
时间是有限的,妹子是有限的,如何在有限的时间里与妹子最愉悦的在一起是一个技术活!

如果对动态规划感兴趣可以观察我的视频,持续更新中。

就这一次干翻动态规划 - Longest Common Subsequence

就这一次干翻动态规划 Longest Increasing Subsequence

最火的瓜,得用动态规划来吃相关推荐

  1. double小数点后最多几位_30年前很火的零食,00后最多吃过2种,全吃过的至少是“叔叔辈”...

    一提起零食,总是会引起很多人的共鸣,因为零食大家都是很喜欢的,在我小的时候还有卖一毛钱的小零食,谁去学校拿5毛钱一包的方便面就被很多同学围着,吃不到方便面能吃点方便面料也是很美的,现在可是大变样,方便 ...

  2. 又怼上了!腾讯被假”老干妈”骗的瓜 ,字节跳动副总吃瓜后,再一次开怼!...

    点击"开发者技术前线",选择"星标" 在看|星标|留言,  真爱 作者:可可 开发者技术前线 原创 最近腾讯和老干妈之间的"乌龙"事件,闹得 ...

  3. 动态规划 RQNOJ 吃西瓜 最大子段和三维版

    题目描述 [说明]此题中出现的所有数全为整数 [背景]SubRaY有一天得到一块西瓜,是长方体形的.... [题目描述]SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地 ...

  4. 硬核吃瓜!上万条数据撕开微博热搜真相

    作者 | 徐麟 来源 | 转载自数据森麟(ID:shujusenlin) 吃瓜前言 关于新浪微博,向来都是各路吃瓜群众聚集之地,大家在微博中可以尽情吃瓜,各种类型的瓜应有尽有,只有你想不到的,没有你吃 ...

  5. 吃瓜笔记 | Momenta王晋玮:让深度学习更高效运行的两个视角

    主讲人:王晋玮 | Momenta合伙人 屈鑫 编辑整理 量子位 出品 | 公众号 QbitAI 2月1日晚,量子位·吃瓜社联合Momenta带来吃瓜社第五期:让深度学习更高效运行的两个视角. 作为顶 ...

  6. 漫画趣解大数据算法建模:买瓜

    大数据开发如何转型算法? 算法建模主要做什么?调参为什么玄学? 如何通俗理解算法建模过程.. 夕阳下的村东头,有一人来买瓜. 1 引子(买瓜) 忙碌的一天刚刚结束,村里的小张就匆匆的骑上车,准备买个西 ...

  7. php大作业关于中国美食,中国最火的15大美食

    中国最火的有 ①重庆火锅 其他地方吃火锅是为了热闹,为了御寒,但重庆人不一样!重庆人吃火锅全年无休,越是夏天越吃的爽. 九宫格麻辣火锅,边涮边吃.各种肉和豆腐.藕片最常见,一般不涮菜,毛肚是最不能少的 ...

  8. 吃瓜群众的福音:跟着AI吃甜瓜?

    2020年的夏天,热俨然成为酷暑的代名词.度过了炎热的六月,正值酷热的七月,迎来闷热的八月-- 何以解热,唯有吃瓜!夏天吃冰镇西瓜,无疑是最佳解暑选择.啃着吃.挖着吃.蘸盐吃.打成沙冰吃.炒着吃.烤着 ...

  9. 吃瓜时间 | Coding error postmortem

    时间过得实在是太快了,还是有必要记录一下2020的一次吃瓜经历,我只吃瓜,什么都不知道. 简而言之,一个大型Longitudinal的项目已经采集了10000+的fMRI数据,一批paper分析已完成 ...

最新文章

  1. 【AI】caffe使用步骤(一):将标注数据生成lmdb或leveldb
  2. linux 手动添加 swap 分区
  3. 学完计算机之后的感受,计算机教学心得心得体会
  4. Android中实现保存和读取文本文件到内部存储器(实现简易的记事本为例)
  5. Vue入门 ---- 简易留言板
  6. apollo动态切换mysql数据源_log4j2从Apollo初始化配置并可动态变更
  7. 隐马尔可夫模型HMM[转载牛人,看了半天没看懂]
  8. 关于Kubernetes集群中常见问题的排查方法的一些笔记
  9. NumPy学习笔记21. IO
  10. mp3音频转换,合并方法?-QVE音频剪辑
  11. UE4代理委托(代理,动态代理,单播,多播)
  12. RTKLIB_RTCM解码学习
  13. 一种简单而有趣的数据结构——并查集
  14. jquery:关于$().css(left,)的设置;offset();offset().left();$.width();$.outerWidth();
  15. node版本更新和npm版本更新
  16. Django Web 官方 中文文档 开发手册
  17. python页面转图片_网页转图片_技术分享 - SegmentFault 思否
  18. 普通最小二乘法( Ordinary Least Square,OLS)
  19. 一键seo提交收录_关于SEO行业中的某些信息,你究竟应该相信谁?又或者谁都不要信!...
  20. 【刷题日记】BFS 经典题目

热门文章

  1. CentOS6.10搜狐浏览器无法切换中文输入法问题之解决
  2. Hydra – Brute Force HTTP(S)
  3. 分享一个ip反查域名的网站
  4. linux下下载各种软件合集!!!
  5. 看到一个描述性弹性域窗口怎么去找此弹性域段的定义
  6. Hibernate从0开始,入门到放弃,一文上手
  7. 网络入侵检测IDS常用数据集KDD Cup99/NSL-KDD/UNSW-NB15/ADFA/CIC IDS2017/2018下载途径
  8. Nature综述: 关键物种对于微生物菌群结构和功能的驱动作用
  9. Lua基础:Lua基础
  10. 【5G核心网】Packet Forwarding Model 数据包转发模型