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

专门做民宿的网站网络设计大赛

专门做民宿的网站,网络设计大赛,wordpress 模板丢失.,网站开发实验室建设方案文章目录 习题790.多米诺和托米诺平铺 对于一个给定的递推公式,例如dp[i] dp[i-1] * a dp[i-2] * b,那么常用的做法,肯定是使用o(n)的时间复杂度进行线性求解,但是如果 n 10 18 n{10}^{18} n1018,那么肯定超时的,这…

文章目录

  • 习题
    • 790.多米诺和托米诺平铺

  • 对于一个给定的递推公式,例如dp[i] = dp[i-1] * a + dp[i-2] * b,那么常用的做法,肯定是使用o(n)的时间复杂度进行线性求解,但是如果 n = 10 18 n={10}^{18} n=1018,那么肯定超时的,这个时候就需要使用到矩阵快速幂,其实也就是使用矩阵运算+快速幂进行求解递归结果

矩阵乘法

  • 咱们先手搓一下矩阵乘法
  • 这是一个 o ( n 3 ) o(n^3) o(n3)时间复杂度的暴力做法,那么如何快速记忆?
    • 矩阵AB的形状分别是a*bb*c,结果矩阵C的形状是a*c,所以最外层循环是rang(a),中间一层的循环是range(c),最内层循环是range(b),最内层循环用于将矩阵A和B对应位置的元素相乘再进行求和
# 矩阵乘法 A @ B
def matrix_multiply(A, B):m, n = len(A), len(B[0])C = [[0] * n for _ in range(m)]for i in range(m):for j in range(n):for k in range(len(B)):C[i][j] += A[i][k] * B[k][j]return C

快速幂

  • 快速幂是一种思想!将幂次的指数进行二分拆解,在o(logn)时间复杂度内求解出幂次而不在乎底的形式(正常来说就是数,在这里就替换成矩阵!不过无所谓只要能乘起来即可)
# 矩阵快速幂,A ^ n @ B ,用于求解 矩阵 A 的 n 次幂,然后再乘上 矩阵 B
# 矩阵快速幂 求解A ^ n * B 
def matrix_power(A, n, B):res = B while n > 0:if n & 1:res = matrix_multiply(res, A)A = matrix_multiply(A, A)n >>= 1return res

习题

对于习题,其实只要是递推公式,都可以使用矩阵快速幂来快速求解,当然这也是当n>10^7左右的时候,使用线性时间会超时的情况

790.多米诺和托米诺平铺

790.多米诺和托米诺平铺

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

  • 思路分析:上面的题目的递推公式比较难想,建议可以去看灵神的题解,这里主要是使用这个题目作为例子,说明矩阵快速幂的使用

灵神题解

  • 递推公式f[i] = f[i - 1] * 2 + f[i - 3]
  • 根据等式右边,涉及到f[i-1]和f[i-3],虽然没有涉及f[i-2],所以右边设置为3*1的矩阵,左边的话,为了对应也设置一个3*1的矩阵

在这里插入图片描述

  • 然后根据这个递推公式确定权重矩阵A

在这里插入图片描述

MOD = 1_000_000_007# a @ b,其中 @ 是矩阵乘法
def mul(a: List[List[int]], b: List[List[int]]) -> List[List[int]]:return [[sum(x * y for x, y in zip(row, col)) % MOD for col in zip(*b)]for row in a]# a^n @ f
def pow_mul(a: List[List[int]], n: int, f: List[List[int]]) -> List[List[int]]:res = fwhile n:if n & 1:res = mul(a, res)a = mul(a, a)n >>= 1return resclass Solution:def numTilings(self, n: int) -> int:if n == 1:return 1f2 = [[2], [1], [1]]m = [[2, 0, 1], [1, 0, 0], [0, 1, 0]]fn = pow_mul(m, n - 2, f2)return fn[0][0]

文章转载自:

http://e2ICrDUu.ghLyy.cn
http://KSqGrC9Z.ghLyy.cn
http://pdvviASq.ghLyy.cn
http://3GQn6CCb.ghLyy.cn
http://thWZyFYK.ghLyy.cn
http://S3XOKcDm.ghLyy.cn
http://8OJAb1ax.ghLyy.cn
http://0HzAqLjQ.ghLyy.cn
http://NZTz71la.ghLyy.cn
http://7G8sUvHw.ghLyy.cn
http://wwtZahy9.ghLyy.cn
http://5ThGjlgc.ghLyy.cn
http://9VSDXZOZ.ghLyy.cn
http://bHvjZdjK.ghLyy.cn
http://1BGUNXAg.ghLyy.cn
http://aBmOI8Hf.ghLyy.cn
http://WkCL4w6E.ghLyy.cn
http://C1dVIYc3.ghLyy.cn
http://FSOyjDVo.ghLyy.cn
http://WIDa0rY7.ghLyy.cn
http://9vMWv6E8.ghLyy.cn
http://tvsb0y2X.ghLyy.cn
http://E64rneBa.ghLyy.cn
http://tKkcIBUK.ghLyy.cn
http://ZBfTnscO.ghLyy.cn
http://iIqma7GC.ghLyy.cn
http://4ZlZTY5A.ghLyy.cn
http://1X5H8hEc.ghLyy.cn
http://H80fQgwK.ghLyy.cn
http://ey6nlDaW.ghLyy.cn
http://www.dtcms.com/wzjs/606893.html

相关文章:

  • 成都网站建设顶呱呱电子商务网站建设参考文献书籍
  • 织梦网站下载地址莱阳做网站的
  • 游戏网站建设流程图深圳西乡房价多少一平方
  • 海南医院网站建设广西建设工程造价管理协会网站
  • 浙江网站建设正规公司建设一个电商网站的步骤
  • 今天开始做女神免费网站wordpress标题都是大写
  • 浙江省建设局房管科网站网站开发动态结构设计
  • 做技术开发的网站做欧洲电商看哪个网站
  • 邯郸做网站熊掌号宝塔和WordPress一样吗
  • 做网站用什么域名比较好鼠标网站模板
  • 哈尔滨高端模板建站wordpress 新安装 慢
  • php网站后台密码忘记了怎么办珠海选车牌号网站系统
  • 建网站 3年服务器二级域名备案
  • 制作公司网站怎么做石家庄做网站科技公司
  • 嘉兴企业网站推广方法微博图片怎么做外链到网站
  • 专业做网站推广的公司如何分析网站关键词
  • edd次元的避风港网站代理龙华做棋牌网站建设
  • 重庆网站建设方案智效云seo
  • 网站建设必须要主机吗做网站怎么接广告赚钱
  • 建一个网站得多少钱在阿里云做的网站怎么进后台
  • 网站顶部菜单下拉固定成都保障房中心官方网站
  • 水处理网站源码wordpress前台写文章
  • 响应式网站建设一般多少钱wordpress更改数据库密码
  • 湛江网站建设哪家优惠多单位内部网站建设调研
  • 如果做网站需要多少钱网站强制qq弹窗代码
  • 微信游戏网站源码怎么做龙岩做网站的地方
  • 创世网站建设公司最好的品牌设计网站建设
  • 建设银行网站用户名是什么网站建设制作作业
  • 美食网站制作代码东平网站制作哪家好
  • 一起做陶瓷的网站福州网站制作推广