news 2026/4/3 6:44:42

leetcode 808. Soup Servings 分汤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 808. Soup Servings 分汤

Problem: 808. Soup Servings 分汤

解题过程

深度优先搜索,记忆化搜索,而且当n足够大的时候,四种情况出现的概率相等,那么2和4合并起来就是100+100,3是50+50,1是100+0,2和4、3情况都是相等的,1是A倒完,所以当n足够大的时候,肯定是A先倒完,概率是100% = 1.0

记忆化搜索的key使用了数值右移,使用了数据类型unsigned long long

Code

class Solution { public: unsigned long long sumA = 0, sumEqual = 0; double sum = 0.0; unordered_map<unsigned long long, double> ump; double dfs(int na, int nb, int steps) { if(na > 0 && nb <= 0) return 0.0; if(na <= 0) { if(nb > 0) { return 1.0; } else if(nb <= 0) { return 0.5; } } unsigned long long key = ((unsigned long long)na << 40) + ((unsigned long long)nb<<20) + (unsigned long long)steps; if(ump.find(key)!=ump.end()) return ump[key]; double ret = 0.0; ret += dfs(na - 100, nb, steps + 1) * 0.25; ret += dfs(na - 75, nb-25, steps + 1) * 0.25; ret += dfs(na - 50, nb-50, steps + 1) * 0.25; ret += dfs(na - 25, nb-75, steps + 1) * 0.25; ump[key] = ret; return ret; } double soupServings(int n) { if(n >= 4900) return 1.0; double ans = dfs(n, n, 0); return ans; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 5:46:46

Docker和Kubernetes与容器自动化扩展

在当今的软件开发生态系统中&#xff0c;自动化测试已经成为了确保软件质量和提高交付速度的关键要素。Docker和Kubernetes是两个非常强大的容器化和容器编排工具&#xff0c;它们不仅在应用程序部署方面有广泛的应用&#xff0c;还可以在软件测试领域发挥重要作用。本文将深入…

作者头像 李华
网站建设 2026/3/13 7:51:49

【拯救HMI】制造业HMI典型应用:工程师必知的3大核心场景

HMI的价值必须在具体的生产场景中才能充分体现。从简单的设备操控到复杂的生产管理&#xff0c;HMI的应用深度直接关系到制造效率与品质。理解以下三大核心场景&#xff0c;有助于工程师从项目之初就进行精准定位与设计。场景一&#xff1a;单机设备监控 —— “设备伴侣”这是…

作者头像 李华
网站建设 2026/3/28 10:58:03

这么简单的9道题,我刷掉了90%的测试员

跳槽最重要的一步自然是面试&#xff0c;网上出现了各种面试题&#xff0c;一时会让人眼花缭乱&#xff0c;分不清最该看哪个&#xff0c;所以小编耗时一星期为大家做了一些软件测试面试的真题&#xff0c;想跳槽的小伙伴们&#xff0c;请准备好你的小本本&#xff01; 问项目 …

作者头像 李华
网站建设 2026/3/25 18:53:38

面试官:请你说说微信发红包,有哪些测试点

1 功能 1.在红包钱数&#xff0c;和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3.拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒 4.当红包钱数超过最大范围是不是有对应的提示 5.当发送的红包个数超过最…

作者头像 李华