【LeetCode】Day188-分汤
创始人
2024-02-04 21:52:08
0

题目

808. 分汤【中等】

题解

动态规划

由于四种分配操作都是25的倍数,因此可以先将n同除以25,四种分配操作变成(4,0),(3,1),(2,2),(1,3),且每种分配概率为0.25。
n较小时,可以用动态规划解决,

  1. 状态定义:dp[i][j] 表示汤 A 和汤 B 分别剩下 i 和 j 份时的所求概率值。
  2. 状态转移方程:四种分配操作
    dp[i][j]=1/4(dp[i−4][j]+dp[i−3][j−1]+dp[i−2][j−2]+dp[i−1][j−3])dp[i][j]=1/4(dp[i-4][j]+dp[i-3][j-1]+dp[i-2][j-2]+dp[i-1][j-3])dp[i][j]=1/4(dp[i−4][j]+dp[i−3][j−1]+dp[i−2][j−2]+dp[i−1][j−3])
  3. 初始条件
    i>0,j=0:B分配完了,但A没有,此时A也无法分配了,dp[i][j]=0+0=0
    i=0,j=0:A,B同时分配完,因此dp[i][j]=0+0.5*1=0.5
    i=0,j>0:A分配完了,而B还没有,根据四种分配操作B也没法分配了,所以A先分配完的概率为1,dp[i][j]=1+0=1
  4. 返回值:dp[n][n]

动态规划的时间复杂度为O(n2)O(n^2)O(n2),除以25之后依然无法在短时间内得到答案
计算A先分配完的数学期望E(A)=(4+3+2+1)*0.25=2.5,B先分配完的数学期望E(B)=(0+1+2+3)*0.25=1.5,当n非常大时,认为A先被分配完的概率接近于1
动态规划可得这个很大的n的临界值为4475(=179*25),所以n大于这个值时,直接返回概率1

class Solution {public double soupServings(int n) {n=(int)Math.ceil((double)n/25);//ceil天花板取整if(n>179)return 1;double[][] dp=new double[n+1][n+1];dp[0][0]=0.5;for(int i=1;i<=n;i++)dp[0][i]=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){dp[i][j]=(dp[Math.max(0,i-4)][j]+dp[Math.max(0,i-3)][Math.max(0,j-1)]+dp[Math.max(0,i-2)][Math.max(0,j-2)]+dp[Math.max(0,i-1)][Math.max(0,j-3)])/4.0;}}return dp[n][n];}
}

时间复杂度:O(C2)O(C^2)O(C2)

空间复杂度:O(C2)O(C^2)O(C2)

相关内容

热门资讯

政策引导消费新范式驱动 银发经... “十五五”规划建议提出,积极应对人口老龄化,优化基本养老服务供给。民政部部长陆治原日前接受采访时表示...
178件地方性法规为首都发展护... 本报记者 孙莹 昨天,市政府新闻办召开首都“十四五”规划高质量收官系列主题新闻发布会,市委依法治市办...
蓝光发展:近期新增诉讼/仲裁涉... 观点网讯:12月24日,四川蓝光发展股份有限公司发布公告,披露公司涉及的重大诉讼情况。 公告显示,近...
北京优化楼市限购政策 多孩家庭... 北京市住房城乡建设委等4部门24日联合印发《关于进一步优化调整本市房地产相关政策的通知》,当日起施行...
ST长方(300301)披露控... 截至2025年12月24日收盘,ST长方(300301)报收于2.42元,较前一交易日上涨0.83%...
ST新亚(002388)披露关... 截至2025年12月24日收盘,ST新亚(002388)报收于6.1元,较前一交易日上涨2.18%,...
张可盈《老舅》再饰律师惊喜亮相... 由郭京飞、王佳佳领衔主演的年代轻喜剧《老舅》正在CCTV-8黄金强档、同步登陆视频平台播出中。其中,...
*ST沐邦控股股东陷借款纠纷 ... 12月24日,*ST沐邦(603398)发布公告,控股股东沐邦新能源控股所持部分股份可能被司法拍卖。...
萧山网友收到一条短信:该政策取... 昨天,萧山一网友在萧内网App发帖: 这下好了,以后从萧山去诸暨,走高速没有免费了! 据了解,...
社保年限再降低!一图看懂北京住... 新京报贝壳财经记者 段文平 制图 任婉晴 编辑 杨娟娟 校对 柳宝庆