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

Leetcode. 688骑士在棋盘上的概率

题目描述

原题链接:Leetcode. 688骑士在棋盘上的概率

解题思路

多元dp

dp[step][i][j])定义为从(i, j)出发,走step步之后骑士还在棋盘上的概率。

  • 如果 ( i , j ) (i,j) (i,j)不在棋盘上,即非 0 < = i < n 0<=i<n 0<=i<n或者非 0 < = j < n 0<=j<n 0<=j<n,那么此时概率一定为 0 0 0
  • 如果 s t e p = 0 step=0 step=0,那么这个时候骑士已经无需再走,而且经过上面的判断,骑士此时一定在棋盘上,所以经过 0 0 0步之后骑士一定还在棋盘上,此时概率为 1 1 1
  • 如果不满足上述的条件,那么此时考虑 d p [ s t e p ] [ i ] [ j ] dp[step][i][j] dp[step][i][j] d p [ s t e p − 1 ] [ i − d x ] [ j − d y ] dp[step-1][i-dx][j-dy] dp[step1][idx][jdy]转化而来,其中 d x dx dx d y dy dy是骑士能走的在 x x x方向和 y y y方向上的位移大小。由题意可知一共有八个方向可以到达 ( i , j ) (i,j) (i,j),那么从每个点过来的概率就是 1 8 \frac{1}{8} 81。也就是说 d p [ s t e p ] [ i ] [ j ] = ∑ 1 8 d p [ s t e p − 1 ] [ i − d x ] [ j − d y ] dp[step][i][j]=\sum \frac{1}{8}dp[step-1][i-dx][j-dy] dp[step][i][j]=81dp[step1][idx][jdy]

python代码

class Solution:def knightProbability(self, n: int, k: int, row: int, column: int) -> float:dx = [-1,-2,-2,-1,1,2,2,1]dy = [-2,-1,1,2,2,1,-1,-2]@cachedef dfs(k, i, j):if not (0 <= i < n and 0 <= j < n):return 0if k == 0:return 1.return sum(dfs(k-1, i+xx, j+yy) for xx,yy in zip(dx, dy))/8 return dfs(k, row, column)

相关文章:

Leetcode. 688骑士在棋盘上的概率

题目描述 原题链接&#xff1a;Leetcode. 688骑士在棋盘上的概率 解题思路 多元dp 将dp[step][i][j])定义为从(i, j)出发&#xff0c;走step步之后骑士还在棋盘上的概率。 如果 ( i , j ) (i,j) (i,j)不在棋盘上&#xff0c;即非 0 < i < n 0<i<n 0<i<…...

TCP/IP 协议栈高效可靠的数据传输机制——以 Linux 4.19 内核为例

TCP/IP 协议栈是一种非常成熟且广泛使用的网络通信框架,它将复杂的网络通信任务分成多个层次,从而简化设计,使每一层的功能更加清晰和独立。在经典的 TCP/IP 协议栈中,常见的分层为链路层、网络层、传输层和应用层。本文将对每一层的基本功能进行描述,并列出对应于 Linux …...

Ubuntu22.04搭建LAMP环境(linux服务器学习笔记)

目录 引言&#xff1a; 一、系统更新 二、安装搭建Apache2 1.你可以通过以下命令安装它&#xff1a; 2.查看Apache2版本 3.查看Apache2运行状态 4.浏览器访问 三、安装搭建MySQL 1.安装MySQL 2.查看MySQL 版本 3.安全配置MySQL 3.1是否设置密码&#xff1f;(按y|Y表…...

鸿蒙面试---1208

HarmonyOS 三大技术理念 分布式架构&#xff1a;HarmonyOS 的分布式架构使得设备之间能够无缝协同工作。例如&#xff0c;它允许用户在不同的智能设备&#xff08;如手机、平板、智能手表等&#xff09;之间共享数据和功能。比如&#xff0c;用户可以在手机上开始编辑文档&…...

java基础教程第16篇( 正则表达式)

Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言&#xff0c;但是在每种语言中有细微的差别。 Java 提供了 java.util.regex 包&#xff0c;它包含了 Pattern 和 Matcher 类&#xff0c;用于处理正…...

Docker部署的gitlab升级的详细步骤(升级到17.6.1版本)

文章目录 一、Gitlab提示升级信息二、老版本的docker运行gitlab命令三、备份老版本Gitlab数据四、确定升级路线五、升级(共分3个版本升级)5.1 升级第一步(17.1.2 > 17.3.7)5.2 升级第二步(17.3.7 > 17.5.3)5.3 升级第三步(17.5.3 > 17.6.1) 六、web端访问gitlab服务 一…...

【如何制定虚拟货币的补仓策略并计算回本和盈利】

在虚拟货币市场中,价格波动性极大,如何在波动中生存并获得盈利是每个投资者都在思考的问题。作为一种投资策略,补仓(又称“摊低成本”)常常被用来降低持仓成本,并在市场回升时获得更大的盈利。但如何科学地设定补仓计划,确定回本点和盈利目标呢? 本文将以 Dogecoin 为…...

给图像去除水印攻

去除水印的过程与添加水印相反&#xff0c;它涉及到图像修复、颜色匹配和区域填充等技术。OpenCV-Python 提供了多种方法来处理不同类型的水印&#xff0c;包括但不限于纯色水印、半透明水印以及复杂背景上的水印。下面将详细介绍几种常见的去水印策略&#xff0c;并给出具体的…...

Linux之封装线程库和线程的互斥

Linux之封装线程库和线程的互斥与同步 一.封装线程库二.线程的互斥2.1互斥量的概念2.2初始化和销毁互斥量2.3加锁和解锁2.4互斥量的原理2.5可重入和线程安全2.6死锁 一.封装线程库 其实在我们C内部也有一个线程库而C中的线程库也是封装的原生线程库的函数&#xff0c;所以我们…...

PH热榜 | 2024-12-08

1. Reforged Labs 标语&#xff1a;轻松为手游工作室制作AI广告。 介绍&#xff1a;Reforged Labs 推出了一款前所未有的AI视频制作服务。我们自动化了以往昂贵且耗时的创意流程&#xff0c;取而代之的是能快速、低成本地为各个工作室量身定制视频广告。 产品网站&#xff1…...

LeetCode刷题day20——贪心

LeetCode刷题day20——贪心 435. 无重叠区间763. 划分字母区间分析&#xff1a; 56. 合并区间分析&#xff1a; 435. 无重叠区间 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 …...

CCF编程能力等级认证GESP—C++3级—20241207

CCF编程能力等级认证GESP—C3级—20241207 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)数字替换打印数字 单选题&#xff08;每题 2 分&#xff0c;共 …...

Microi 吾码:大数据浪潮中的智能领航者

目录 一、大数据时代的挑战与机遇 二、Microi 吾码在大数据存储方面的应用 与分布式文件系统的集成 数据库存储优化 三、Microi 吾码在大数据处理与分析中的应用 数据清洗与转换 数据分析与挖掘 四、Microi 吾码在大数据可视化中的应用 五、Microi 吾码在大数据流式处…...

Lua语言入门 - Lua 数组

Lua 数组 数组&#xff0c;就是相同数据类型的元素按一定顺序排列的集合&#xff0c;可以是一维数组和多维数组。 在 Lua 中&#xff0c;数组不是一种特定的数据类型&#xff0c;而是一种用来存储一组值的数据结构。 实际上&#xff0c;Lua 中并没有专门的数组类型&#xff…...

gulp应该怎么用,前端批量自动化替换文件

背景 最近公司准备把所有项目中用到的国际化相关的key规范化&#xff0c;原因是: 一直以来公司的app和web端 在针对相同的需求以及相同的国际化语言&#xff0c;需要设置不同的两份国际化文件&#xff0c;难以维护旧版的国际化文件中&#xff0c;存在的大量值重复&#xff0c…...

石岩湿地公园的停车场收费情况

周末石岩湿地公园停车场【967个】小车停车费封顶14元价格还行&#xff0c;我还记得2020年的时候湿地公园还是10元一天封顶。现在的收费情况也是可以的&#xff0c;尤其是周末停车比工作日停车便宜还是很得民心的哈。 车型 收费标准 小车 工作日 高峰时间8:00~20:00 首小时…...

A7157 基于Java+SSM+mysql+jsp的医院挂号系统的设计与实现 源码 文档 配置 全套资料

医院挂号系统 1.项目描述2. 绪论3.项目功能4.界面展示5.源码获取 1.项目描述 摘 要 随着计算机和网络技术的飞速发展&#xff0c;医院管理与互联网的结合也越来越紧密&#xff0c;享受便捷的医疗服务也变成了人民群众关注的重点。通过对医院就诊挂号情况的调查分析&#xff0c…...

数据处理与统计分析——11-Pandas-Seaborn可视化

Seaborn 简介 Seaborn 是一个基于 Matplotlib 的图形可视化 Python 库&#xff0c;提供了高度交互式的接口&#xff0c;使用户能够轻松绘制各种吸引人的统计图表。Seaborn 可以直接使用 Pandas 的 DataFrame 和 Series 数据进行绘图。 1. Seaborn 绘制单变量图 (1) 直方图 h…...

【计算机网络】实验13:运输层端口

实验13 运输层端口 一、实验目的 本次实验旨在验证TCP和IP运输层端口号的作用&#xff0c;深入理解它们在网络通信中的重要性。通过实验&#xff0c;我将探讨端口号如何帮助区分不同的应用程序和服务&#xff0c;使得在同一台主机上能够同时运行多个网络服务而不发生冲突。此…...

STL之适配器(adapters)_下

STL之适配器adapters container adapersstackqueue iterator adaptgersinsert iteratorsreverse iteratorsstream iterators function adapters对返回值进行逻辑判断:not1,not2对参数进行绑定:bind1st, bind2nd用于函数合成&#xff1a;compose1,compose2用于函数指针 ptr_func…...

Doramagic开源工具箱:开发者效率提升的模块化实践

1. 项目概述&#xff1a;Doramagic&#xff0c;一个为开发者打造的魔法工具箱最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“tangweigang-jpg/Doramagic”。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但点进去一看&#xff0c;发现这其…...

保姆级教程:在Spring Boot项目里正确配置Hutool和BouncyCastle搞定SM4国密加密

Spring Boot项目集成SM4国密加密全流程实战指南 在金融、政务等对数据安全要求严格的领域&#xff0c;国密算法正逐步取代国际通用加密标准成为首选方案。作为国内广泛使用的SM4分组密码算法&#xff0c;其128位分组长度和128/192/256位密钥长度设计&#xff0c;在保证安全性的…...

十六呀,今天对我们都是很特殊的一天吧

今天对你坦白了 不是表白&#xff0c;是坦白 说了一些你早就知道的话 我说我想放下了 我说交给时间 不是我真的想放下 是我没有别的选择了 就做好朋友吧 如果你还愿意的话 我们会是很好的朋友 放下吧&#xff0c;如果真的可以&#xff0c;真的甘心的话。 好久好久之后 也许真的…...

策略即代码:从理念到实践,构建自动化合规与安全防线

1. 项目概述与核心价值 最近在整理团队内部的开发规范时&#xff0c;发现了一个非常有意思的仓库&#xff1a; vectimus/policies 。乍一看这个名字&#xff0c;你可能会觉得这只是一个存放公司政策文档的普通地方&#xff0c;但如果你深入进去&#xff0c;会发现它远不止于此…...

ISE FPGA开发全流程实战:从代码到比特流的经典设计指南

1. 项目概述与核心价值如果你正准备踏入FPGA开发的大门&#xff0c;或者已经用了一段时间的Vivado&#xff0c;想看看业界另一个主流工具ISE&#xff08;Integrated Software Environment&#xff09;到底怎么玩&#xff0c;那这个系列的内容就是为你准备的。ISE是Xilinx&#…...

基于CircuitPython与MCP23017的环境音效混合器:嵌入式音频与GPIO扩展实战

1. 项目概述与环境音效混合器的核心价值如果你和我一样&#xff0c;对嵌入式音频项目充满热情&#xff0c;同时又常常被微控制器有限的GPIO引脚数量所困扰&#xff0c;那么这个基于CircuitPython与MCP23017的环境音效混合器项目&#xff0c;绝对值得你花上一个周末的时间来亲手…...

告别手动切号!全栈实战:用AI辅助编写一个「多平台海量私信秒回」系统

最近在研究全网营销和客资管理系统&#xff0c;看到这样两张产品宣传图&#xff0c;直击痛点&#xff1a;一个工作台&#xff0c;快速处理海量私信/评论&#xff08;告别多个聊天窗口来回切换&#xff09;。7x24小时在线&#xff0c;AI秒回客户&#xff08;告别响应时间长、客户…...

告别Electron的臃肿:用NeutralinoJS + Vue 3,5分钟打造一个不到3MB的桌面应用

轻量化桌面应用开发实战&#xff1a;用NeutralinoJS与Vue 3构建3MB级工具 当现代前端开发者尝试进入桌面应用领域时&#xff0c;往往会遇到一个令人头疼的问题&#xff1a;为什么一个简单的记事本工具打包后竟超过100MB&#xff1f;这种困扰正是Electron等传统框架带来的"…...

实验室小白避坑指南:在浪潮AiStation上从零部署PyTorch项目(含离线环境打包)

实验室科研实战&#xff1a;浪潮AiStation离线部署PyTorch全流程解析 当实验室服务器遭遇网络隔离与资源限制时&#xff0c;如何高效部署深度学习项目成为每个科研新手的必修课。本文将针对浪潮AiStation平台的特殊性&#xff0c;系统梳理从环境准备到代码运行的完整闭环&#…...

LTC3305铅酸电池平衡器与PTC限流方案设计

1. LTC3305铅酸电池平衡器工作原理 LTC3305是Linear Technology&#xff08;现属ADI&#xff09;推出的一款专用于铅酸电池组的主动平衡控制器。其核心功能是通过一个辅助电池&#xff08;AUX&#xff09;在串联电池组间进行电荷转移&#xff0c;实现电压均衡。这种架构特别适合…...