首页 > 其他分享 >935. 骑士拨号器

935. 骑士拨号器

时间:2024-12-10 23:32:09浏览次数:4  
标签:return 拨号器 int dfs 方格 骑士 移动 935

象棋骑士有一个独特的移动方式,它可以垂直移动两个方格,水平移动一个方格,或者水平移动两个方格,垂直移动一个方格(两者都形成一个 L 的形状)。

象棋骑士可能的移动方式如下图所示:

我们有一个象棋骑士和一个电话垫,如下所示,骑士只能站在一个数字单元格上(即蓝色单元格)。

给定一个整数 n,返回我们可以拨多少个长度为 n 的不同电话号码。

你可以将骑士放置在任何数字单元格上,然后你应该执行 n - 1 次移动来获得长度为 n 的号码。所有的跳跃应该是有效的骑士跳跃。

因为答案可能很大,所以输出答案模 10^9 + 7.

 

MOD = 1_000_000_007
NEXT = (4, 6), (6, 8), (7, 9), (4, 8), (0, 3, 9), (), (0, 1, 7), (2, 6), (1, 3), (2, 4)

@cache  # 缓存装饰器,避免重复计算 dfs 的结果(记忆化)
def dfs(i: int, j: int) -> int:
    if i == 0:
        return 1
    return sum(dfs(i - 1, k) for k in NEXT[j]) % MOD

class Solution:
    def knightDialer(self, n: int) -> int:
        if n == 1:
            return 10
        return (sum(dfs(n - 1, j) for j in range(10))) % MOD

 

 

标签:return,拨号器,int,dfs,方格,骑士,移动,935
From: https://www.cnblogs.com/xxlm/p/18598354

相关文章

  • 白骑士的JavaScript教学生态系统篇之现代前端开发流程 5.3.4 持续集成与部署(CI/CD)
            在现代软件开发中,持续集成与持续部署(CI/CD)已经成为提高开发效率、确保软件质量的关键流程。CI/CD不仅能够自动化代码的构建、测试和部署,还能帮助开发团队快速地将新功能和修复发布到生产环境。本文将深入探讨CI/CD的概念、优势、常用工具以及如何在JavaScript......
  • 【每日一题】 688. 骑士在棋盘上的概率
    在一个 nxn 的国际象棋棋盘上,一个骑士从单元格 (row,column) 开始,并尝试进行 k 次移动。行和列是 从0开始 的,所以左上单元格是 (0,0) ,右下单元格是 (n-1,n-1) 。象棋骑士有8种可能的走法,如下图所示。每次移动在基本方向上是两个单元格,然后在正交方......
  • 【Leetcode 每日一题】688. 骑士在棋盘上的概率
    问题背景在一个n×nn\timesnn×n的国际象棋棋盘上,一个骑士从单元格......
  • 代码随想录算法训练营day61| 卡码网97.小明逛公园 127.骑士的攻击
    学习资料:https://www.programmercarl.com/kamacoder/0097.小明逛公园.htmlfloyd算法,三维矩阵A*算法学习记录:97.小明逛公园(没看懂,抄的)点击查看代码#三维数组Floydif__name__=="__main__":max_int=10005n,m=map(int,input().split())grid=[[[max_......
  • AbMole| JNJ-42041935(CAS号1193383-09-3;目录号M8963)
    JNJ-42041935是一种高效的,竞争性的,选择性脯氨酰羟化酶PHD抑制剂,对于PHD1,PHD2andPHD3的pKi值分别为7.91±0.04,7.29±0.05和7.65±0.09。生物活性JNJ-42041935是一种有效的,2-氧戊二酸竞争性,可逆性和选择性PHD酶抑制剂。JNJ-42041935是PHD2181-417最有效的抑制剂,其pIC50......
  • Connection to tcp://192.168.112.137:1935?tcp_nodelay=0 failed: Connection timed
    记录一下自己的报错和解决步骤输入catnginx.conf 查看Nginx的配置文件nginx.conf修改nginx核心配置文件nginx,添加rtmp模块rtmp{                                          ......
  • 白骑士的JavaScript教学JavaScript语法基础篇之运算符与表达式 2.2.4 逻辑运算符
            逻辑运算符是用于布尔逻辑运算的符号,它们常用于控制流程和条件判断,帮助程序员编写更复杂和更动态的条件语句。在JavaScript中,主要的逻辑运算符包括逻辑与(‘&&‘)、逻辑或(‘||‘)、逻辑非(‘!‘)以及一些其他特定场景的运算符。逻辑运算符用于将多个布尔值或表达式......
  • 《勇敢小骑士》游戏闪退弹窗提示“找不到kernel.dll”文件该怎么解决?游戏启动时崩溃提
    当玩《勇敢小骑士》游戏出现闪退并弹窗提示“找不到kernel.dll”文件时,可以在网上搜索可靠的该文件资源进行下载,然后放置到合适的系统目录中。也可尝试检查游戏完整性,看能否自动修复此问题。本篇将为大家带来《勇敢小骑士》游戏闪退弹窗提示“找不到kernel.dll”文件该怎么解决......
  • 白骑士的Java教学介绍篇 1.1 Java简介
            欢迎来到Java编程的世界!无论你是编程新手还是有一定经验的开发者,学习Java都将为你打开一个广阔的编程领域。Java作为一种功能强大且广泛使用的编程语言,自诞生以来便以其平台无关性、面向对象的特性和丰富的生态系统赢得了全球开发者的青睐。在本篇博客中,我们将......
  • 20240913_155935 mysql 触发器
    建表需求创建一个日志表记录teacher表的操作日志情况增删改的相关信息要保存起来方便定期查看明确字段表名:log_info列信息idactioninfotime创建表格CREATETABLElog_info( idINTPRIMARYKEYAUTO_INCREMENT, action_nameVARCHAR(11), infoVARCHAR(111), act_......