力扣(LeetCode)808. 分汤(C++)

news2025/3/1 14:09:16

动态规划

在这里插入图片描述

如图,本题的状态表示,是二维 d p dp dp f [ i , j ] f[i,j] f[i,j] i i i 表示剩余的 a a a j j j 表示剩余的 b b b f [ i , j ] f[i,j] f[i,j] 表示 a a a 先取完的概率 。

按照 i / j i/j i/j 的剩余数量做集合划分
①当 i ≤ 0 , j ≤ 0 i\le 0,j\le0 i0,j0 a / b a/b a/b 同时取完 , 线性概率 f [ i ] [ j ] = 1.0 ÷ 2 = 0.5 f[i][j]=1.0\div2=0.5 f[i][j]=1.0÷2=0.5
②当 i ≤ 0 , j > 0 i\le 0,j>0 i0,j>0 a a a 先取完 , f [ i ] [ j ] = 1.0 f[i][j]=1.0 f[i][j]=1.0
③当 i > 0 , j ≤ 0 i> 0,j\le0 i>0,j0 b b b 先取完 , f [ i ] [ j ] = 0.0 f[i][j]=0.0 f[i][j]=0.0
④当 i > 0 , j > 0 i> 0,j>0 i>0,j>0 a / b a/b a/b 都有剩余 , 有均等概率进行 4 4 4 种取法 , 为了便于操作 , 将所有取法的取值 ÷ 25 \div 25 ÷25 , 那么初始汤量 n = n ÷ 25 n = n\div25 n=n÷25 f [ i ] [ j ] = ( f [ i − 4 ] [ j ] + f [ i − 3 ] [ j − 1 ] + f [ i − 2 ] [ j − 2 ] + f [ i − 1 ] [ j − 3 ] ) / 4 f[i][j]= (f[i-4][j]+f[i-3][j-1]+f[i-2][j-2]+f[i-1][j-3])/4 f[i][j]=(f[i4][j]+f[i3][j1]+f[i2][j2]+f[i1][j3])/4

状态转移方程
f [ i ] [ j ] = { 0.5 if  i ≤ 0 , j ≤ 0 1.0 if  i ≤ 0 , j > 0 0.0 if  i > 0 , j ≤ 0 ( f [ i − 4 ] [ j ] + f [ i − 3 ] [ j − 1 ] + f [ i − 2 ] [ j − 2 ] + f [ i − 1 ] [ j − 3 ] ) ÷ 4 if  i > 0 , j > 0 f[i][j] = \begin{cases} 0.5&\text{if }i\le 0,j\le0\\ 1.0&\text{if }i\le 0,j>0\\ 0.0&\text{if }i> 0,j\le0\\ (f[i-4][j]+f[i-3][j-1]+f[i-2][j-2]+f[i-1][j-3])\div4 &\text{if }i> 0,j>0 \end{cases} f[i][j]=0.51.00.0(f[i4][j]+f[i3][j1]+f[i2][j2]+f[i1][j3])÷4if i0,j0if i0,j>0if i>0,j0if i>0,j>0

数学期望 : 取 a = ( 4 + 3 + 2 + 1 ) ÷ 4 = 2.5 a=(4+3+2+1)\div4=2.5 a=(4+3+2+1)÷4=2.5 b = ( 3 + 2 + 1 + 0 ) ÷ 4 = 1.5 b=(3+2+1+0)\div 4=1.5 b=(3+2+1+0)÷4=1.5 ,数学期望 a > b a>b a>b ,当 n n n 很大时 , a a a 先取完的概率趋于 1 1 1 。经测试 , n ÷ 25 ≥ 189 n\div 25 \ge 189 n÷25189 时 , a a a 先取完的概率近似为 1 1 1

朴素dp

class Solution {
public:
    int g(int x){//分汤后小于0,归为0
        return max(0,x);
    }
    double soupServings(int n) {
        // n = (n+24)/25;//向上取整
        n = n / 25 + (n%25!=0);
        if(n>=189) return 1;
        vector<vector<double>> f(n+1,vector<double>(n+1));
        for(int i = 0;i<=n;i++)
            for(int j = 0;j<=n;j++){
                if(!i&&!j) f[i][j] = 0.5;
                else if(!i&&j) f[i][j] = 1.0;
                else if (i&&!j) f[i][j] = 0.0;
                else{//(i&&j)
                    f[i][j] = (f[g(i-4)][j]+f[g(i-3)][g(j-1)]+f[g(i-2)][g(j-2)]+f[g(i-1)][g(j-3)])/4;
                }
            }
        return f[n][n];
    }
};
  1. 时间复杂度 : O ( n 2 ) O(n^2) O(n2) , 状态转移的时间复杂度 O ( n 2 ) O(n^2) O(n2)
  2. 空间复杂度 : O ( n 2 ) O(n^2) O(n2) f f f 数组的空间复杂度 O ( n 2 ) O(n^2) O(n2)

AC

AC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码冲突的产生以及解决方式

Git代码冲突解决 为什么会产生代码冲突&#xff1f; 远程仓库的某个文件内容发生了修改&#xff0c;而本地没有及时进行pull拉取&#xff0c;那么就会导致本地的分支落后。当修改完本地代码再push到远程的时候&#xff0c;就会产生代码冲突。如何避免产生代码冲突&#xff1f;…

GitHub标星75k,阿里15W字的Spring高级文档(全彩版)真的太香了

随着 Spring 使用越来越广泛&#xff0c;Spring 已经成为 Java 程序员面试的必问知识点&#xff0c;很多同学对于Spring理解不是那么的深刻&#xff0c;经常就会被几个连环追问给干趴了&#xff01; 今天小编整理了一下一线架构师的Spring源码高级文档&#xff1a;SpringSprin…

基础:BS(Browser/Server)、CS(Client/Server)架构

一、BS&#xff08;Browser/Server&#xff09; 所有浏览器应用都是BS架构。 BS&#xff08;Browser/Server&#xff09;&#xff1a;浏览器 / 服务器结构。BS是伴随着Internet技术的兴起&#xff0c;对C/S架构的改进&#xff0c;为了区别于传统的C/S 模式&#xff0c;特意称为…

亚马逊、沃尔玛、美客多测评补单是什么?自养号需要解决哪些问题?

​做跨境电商很多卖家会疑惑测评&#xff08;补单&#xff09;是什么&#xff1f;为什么需要测评或者补单&#xff1f; 其实测评或补单都是类似于国内电商&#xff08;某宝&#xff0c;某东&#xff09;的刷单。 测评补单作用&#xff1a;快速提高产品的排名、权重和销量 可…

如何在 VMware Workstation 16.2 中安装 Ubuntu 20.04

安装 Ubuntun 20.04 如今,Linux 操作系统越来越受欢迎。大多数服务器都使用Linux操作系统,个人系统也开始使用各种 Linux 发行版。Ubuntu 是流行的 Linux 操作系统之一。 一、在搜栏中搜索 VMware Workstation 并打开它 二、在主页上点击“创建新的虚拟机”。当你开始准备时…

TensorFlow中的tf.nn.softmax_cross_entropy_with_logits_v2函数详解

一、函数介绍 函数形式&#xff1a;tf.nn.softmax_cross_entropy_with_logits_v2(labelslabels, logitslogits) 需要注意的是&#xff0c;此处是最常见的参数形式&#xff0c;即只有labels和logits参数。为了简单起见&#xff0c;这里不对其他参数进行赘述。其中&#xff0c;…

【AtCoder】离线询问+树状数组

文章目录题目描述题意思路代码D - AtCoder Express 2 题目描述 input#1&#xff1a; 2 3 1 1 1 1 2 2 2 1 2 output#1&#xff1a; 3 input#2&#xff1a; 10 3 2 1 5 2 8 7 10 1 7 3 10 output#2&#xff1a; 1 1 input#3&#xff1a; 10 10 10 1 6 2 9 4 5 4 7 4 7 5 8 6 6 …

【虹科案例】极高的精度水平——虹科数字化仪在大型强子对撞机机器保护系统中的应用

大型强子对撞机机器保护系统 CERN&#xff08;欧洲核子研究中心&#xff09; 的大型强子对撞机 (LHC) 的机器保护系统中使用了140 多张虹科数字化仪卡。这些板卡用于检查粒子束是否已准确偏转。这需要极高的精度&#xff0c;因为在 27 公里 LHC 加速器环中&#xff0c;两束高能…

19182 石子合并(基础版)

题目 19182 石子合并&#xff08;基础版&#xff09; 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0 题型: 编程题 语言: 不限定 Description 设有 N(N≤300) 堆石子排成一排&#xff0c;其编号为1,2,3,⋯,N。每堆石子有一定的质量 mi(mi≤1000)。 现在要将这N堆…

什么是JavaScript一文教会你

目录 文章目录**二、什么是JavaScript&#xff0c;有什么用?**三、HTML嵌入JavaScript的方式&#xff1a;第一种方式&#xff1a;第二种方式&#xff1a;第三种方式&#xff1a;四、JavaScript的变量五、函数初步**函数参数中的几个场景****情景1&#xff1a;传入参数不足****…

MyBatis--自定义映射resultMap

1.处理下划线与属性名不一致的方法 字段名和属性名不一致的情况 , 如何处理映射关系 解决方法 : 1. 为查询的字段设置别名 , 和属性名保持一致 例 : selectemp_id empId , emp_name empName , age , genderfromt_emp where emp_id #{empId} 2. 当字段符合MySql 的要求使用 _…

软文发布推广需要注意的问题有哪些

随着互联网的发展&#xff0c;软文发稿这种以文章为载体、并带有很强隐蔽性的广告形式也得到了飞速发展&#xff0c;这种营销形式实际上具有非常广泛的传播性、并兼具成本低、权威性等优势&#xff0c;可有效帮助企业实现品牌的宣传推广、提升产品的销售转化率。那么软文发稿需…

上海亚商投顾:沪指探底回升 供销社、新冠检测概念领涨

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪A股今日小幅调整&#xff0c;三大指数盘初均跌超1%&#xff0c;随后震荡回升跌幅收窄&#xff0c;创业板指一度接近…

Android 发布自己的sdk

作为一个开发,总是会跟开源组件打交道,现在记下我自己写的开源组件遇到的问题 1.创建一个Android Library 2.修改build.gradle plugins {id com.android.application } 里面的id com.android.application 改为 id com.android.library android {compileSdk 32defaultConf…

艾美捷Immunochemistry FAM-FLICA Caspase-1检测方案

Caspases在细胞凋亡和炎症中发挥重要作用。ICT的FLICA检测试剂盒被研究人员用于通过培养的细胞和组织中的胱天蛋白酶活性来定量凋亡。 艾美捷Immunochemistry FAM FLICA Caspase-1探针允许研究人员评估Caspase-1的激活。FLICA试剂FAM-YVAD-FMK进入每个细胞&#xff0c;并不可逆…

【第十二篇】Camunda系列-事件篇-信号事件

信号事件 1. 开始事件 通过信号来启动流程实例 部署流程和发送信号来启动流程 /*** 部署流程*/@Testpublic void deployFlow(){Deployment deploy = repositoryService.createDeployment(<

2022卡塔尔世界杯:TikTok卖家如何把握这四年一度的营销机遇?

2022卡塔尔世界杯已正式开幕&#xff0c;这四年一度规模最大的足球赛事&#xff0c;也是全民体育狂欢节。这样的高关注度&#xff0c;必然会带来高流量&#xff0c;而流量就是金钱。没有卖家能在如此巨大的流量面前无动于衷&#xff0c;尤其是运动类品牌。TikTok作为世界杯流量…

海绵城市解决方案-最新全套文件

海绵城市解决方案-最新全套文件一、建设背景1、建设海绵城市主要有三个意义&#xff1a;2、当前我国海绵城市建设面临的困境二、建设架构三、建设方案1、“渗”&#xff1a;能把更多的雨水渗透到城市的地下储存起来2、“滞”&#xff1a;不能让雨水很快流走&#xff0c;也是要把…

不懂23种设计模式?别灰心,这份核心笔记来帮你,你想知道的都在这里!

设计模式是软件工程中各种常见问题的经典解决方案&#xff0c;设计模式不只是代码&#xff0c;而是组织代码的方式。假设一行行的代码是砖&#xff0c;设计模式就是蓝图。 什么是设计模式 设计模式是解决问题的一种思想&#xff0c;和语言无关。在面向对象软件设计的工程中&am…

Elasticsearch(macbook搭建,Elasticsearch+kibana)一步到位

Elasticsearch安装 首先在官网下载一下ES的压缩包&#xff1a;&#xff08;我是m1的各位自己看着下&#xff09;Download Elasticsearch | Elastic jdk&#xff0c;要有的&#xff01;不会自自己百度一下最好1.8的 &#xff08;你环境变设成全局的&#xff09;放在哪里不重要…