当前位置: 首页 > ds >正文

(nice!!!)(LeetCode 每日一题) 808. 分汤 (深度优先搜索dfs)

题目:808. 分汤

在这里插入图片描述
在这里插入图片描述

思路:深度优先搜索dfs+记忆化搜索,时间复杂度0(n*n)。这里的n最大为400。

C++版本:

class Solution {
public:double dfs(int x,int y,vector<vector<double>> &sta){// 平手if(x<=0 && y<=0) return 0.5;// A先耗尽if(x<=0) return 1;// B先耗尽if(y<=0) return 0;// 之前遍历过if(sta[x][y]!=0) return sta[x][y];// 记忆化sta[x][y]=0.25*(dfs(x-4,y,sta)+dfs(x-3,y-1,sta)+dfs(x-2,y-2,sta)+dfs(x-1,y-3,sta));return sta[x][y];}double soupServings(int n) {// 大于10000为1可以传n为10000进去,输出的结果ans与1的误差小于10^-5if(n>=10000) return 1;// 都是25的整数倍,在记忆化时,很多位置都没有用到,所以都除以25n=(n+24)/25;// 记忆化数组,避免重复遍历vector<vector<double>> sta(n+1,vector<double>(n+1));// 深度优先搜索dfsreturn dfs(n,n,sta);}
};

JAVA版本:

class Solution {double dfs(int x,int y,double[][] sta){if(x<=0 && y<=0) return 0.5;if(x<=0) return 1;if(y<=0) return 0;if(sta[x][y]!=0) return sta[x][y];sta[x][y]=0.25*(dfs(x-4,y,sta)+dfs(x-3,y-1,sta)+dfs(x-2,y-2,sta)+dfs(x-1,y-3,sta));return sta[x][y];}public double soupServings(int n) {if(n>=10000) return 1;n=(n+24)/25;double[][] sta=new double[n+1][n+1];return dfs(n,n,sta);}
}

GO版本:

func soupServings(n int) float64 {if n>10000  {return 1}n=(n+24)/25sta:=make([][]float64,n+1)for i:=range sta {sta[i]=make([]float64,n+1)}return dfs(n,n,sta)
}func dfs(x,y int,sta [][]float64) float64 {if x<=0&&y<=0 {return 0.5}if x<=0 {return 1}if y<=0 {return 0}if sta[x][y]!=0 {return sta[x][y]}sta[x][y]=0.25*(dfs(x-4,y,sta)+dfs(x-3,y-1,sta)+dfs(x-2,y-2,sta)+dfs(x-1,y-3,sta))return sta[x][y]
}
http://www.xdnf.cn/news/17453.html

相关文章:

  • Lattice Radiant 下载ROM以及逻辑分析仪调试
  • (数据结构)链表
  • 快切装置与备自投装置的区别
  • Node.js 》》数据验证 Joi 、express-joi
  • 汽车电子:现代汽车的“神经中枢“
  • 【优选算法】多源BFS
  • 三方相机问题分析七:【datespace导致GPU异常】facebook 黑块和Instagram花图问题
  • C++程序库选择:权衡与取舍的艺术——以iostream和stdio为例
  • 借助Rclone快速从阿里云OSS迁移到AWS S3
  • 使用 C# 通过 .NET 框架开发应用程序的安装与环境配置
  • 省市县人口密度(2000-2023)
  • 嵌入式 - 数据结构:哈希表和排序与查找算法
  • 基于Jeecgboot3.8.1的flowable流程审批人为空的设置-后端部分
  • 若以微服务部署踩坑点
  • 【C#】掌握并发利器:深入理解 .NET 中的 Task.WhenAll
  • 跟着尚硅谷学vue-day7
  • 【MongoDB学习笔记2】MongoDB的索引介绍
  • 宁商平台税务新政再升级:精准施策,共筑金融投资新生态
  • 塑料可回收物检测数据集-10,000 张图片 智能垃圾分类系统 环保回收自动化 智慧城市环卫管理 企业环保合规检测 教育环保宣传 供应链包装优化
  • UE5太空射击游戏入门(一):项目创建与飞船控制
  • 5.0.9 C# wpf通过WindowsFormsHost嵌入winform控件
  • 网络基础浅谈
  • 僵尸进程、孤儿进程、进程优先级、/proc 文件系统、CRC 与网络溢出问题处理(实战 + 原理)
  • Docker搭建Jenkins实现自动部署:快速高效的持续集成之道!
  • 进程管理、系统高负载、cpu超过800%等实战问题处理
  • Android 中解决 Button 按钮背景色设置无效的问题
  • Numpy科学计算与数据分析:Numpy广播机制入门与实践
  • conda pip uv与pixi
  • react的form.resetFields()
  • 论文阅读:User Behavior Simulation with Large Language Model-based Agents