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

找快照网站查询线上营销策略都有哪些

找快照网站查询,线上营销策略都有哪些,高端网站设计合肥网站建设,发不了软文的网站怎么做关键词优化1. 理论原理推导 假设有两个序列: 序列 序列 子问题定义: 令 表示序列 和 的最长公共子序列的长度。 递推公式: 对于任意 和 ,我们考虑两个位置上的元素 ​ 和 ​: 如果 ,说明这两个元素可以同时…

1. 理论原理推导

假设有两个序列:

  • 序列 X = x_1, x_2, \dots, x_m

  • 序列 Y = y_1, y_2, \dots, y_n

子问题定义:
dp[i][j] 表示序列 X[1 \dots i] 和 Y[1 \dots j] 的最长公共子序列的长度。

递推公式:
对于任意 1 \le i \le m 和 1 \le j \le n,我们考虑两个位置上的元素 x_i​ 和 y_j​:

  1. 如果 x_i = y_j,说明这两个元素可以同时出现在公共子序列中,此时:

    dp[i][j] = dp[i-1][j-1] + 1
  2. 如果 x_i \neq y_j​,那么最长公共子序列不可能同时包含这两个元素,只能在两种可能中取最大值:

    dp[i][j] = \max\{ dp[i-1][j],\; dp[i][j-1] \}

边界条件:

  • 当 i=0 或 j=0 时,意味着其中一个序列为空,此时 dp[i][j]=0

这一推导基于最优子结构性质:最长公共子序列问题的最优解可以由其子问题的最优解构造得到。


2. 时间复杂度推导

  • 状态个数:
    动态规划表 dp 的大小为 (m+1)×(n+1) 。

  • 状态转移:
    每个状态dp[i][j]的计算只涉及常数时间的比较和加法操作。

因此,总的时间复杂度为:O(m×n)

空间复杂度也为 O(m×n) ;若通过空间优化(例如仅保留当前行和上一行),可降为 O(\min(m, n))


3. 算法步骤

下面是基于上述理论推导的动态规划求解 LCS 的具体步骤:

  1. 初始化:

    • 构建一个大小为 (m+1)×(n+1)的二维数组 dp,所有元素初始化为 0。

    • 行和列的索引从 0 开始,令dp[0][j]=0(对于所有 j)和 dp[i][0]=0(对于所有 i)。

  2. 状态转移:

    • 对于 i 从 1 到 m:

      • 对于 j 从 1 到 n:

        • x_i = y_j​,则令:

          dp[i][j] = dp[i-1][j-1] + 1
        • 否则:

          dp[i][j] = \max\{ dp[i-1][j],\; dp[i][j-1] \}
  3. 结果输出:

    • 最终,dp[m][n] 即为序列 X 和 Y 的最长公共子序列的长度。

  4. (可选)路径回溯:

    • 若需要重构出一个最长公共子序列,可以从dp[m][n]开始,逆向回溯:

      • x_i = y_j​ 时,该元素属于 LCS,记录下来,并同时减小 i 和 j;

      • dp[i-1][j] \ge dp[i][j-1] 时,移动到(i-1, j);否则移动到(i, j-1)


4. Python 代码示例

下面提供一个 Python 代码示例,既计算 LCS 的长度,也重构出一个 LCS:

def lcs_length(X, Y):m, n = len(X), len(Y)# 创建 (m+1) x (n+1) 的二维 dp 数组,并初始化为 0dp = [[0] * (n + 1) for _ in range(m + 1)]# 填充 dp 表for i in range(1, m + 1):for j in range(1, n + 1):if X[i - 1] == Y[j - 1]:dp[i][j] = dp[i - 1][j - 1] + 1else:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])return dpdef construct_lcs(dp, X, Y):"""根据 dp 表从 X 和 Y 中回溯构造最长公共子序列"""i, j = len(X), len(Y)lcs = []while i > 0 and j > 0:# 如果两个元素相等,加入 LCSif X[i - 1] == Y[j - 1]:lcs.append(X[i - 1])i -= 1j -= 1else:# 否则,沿着较大值的方向回溯if dp[i - 1][j] >= dp[i][j - 1]:i -= 1else:j -= 1lcs.reverse()  # 反转得到正确顺序return lcsdef main():# 示例序列,可以根据需要替换成任意两个序列X = "ABCBDAB"Y = "BDCAB"# 计算 dp 表dp = lcs_length(X, Y)print("最长公共子序列的长度为:", dp[len(X)][len(Y)])# 重构最长公共子序列lcs_seq = construct_lcs(dp, X, Y)print("最长公共子序列为:", ''.join(lcs_seq))if __name__ == '__main__':main()

http://www.dtcms.com/wzjs/266477.html

相关文章:

  • 新闻门户网站建设热搜榜上2023年热搜
  • 小程序网站开发网络营销教案ppt
  • 捷信做单网站seo推广公司招商
  • 网上做家教哪个网站安卓手机优化软件哪个好
  • 网站建设中主页指的是竞价排名适合百度这样的网络平台吗
  • wordpress的文章插件百度seo 站长工具
  • 在百度上做网站多少钱如何找推广平台
  • 北京市住房和城乡建设委网站软文写作营销
  • 网站怎样做多语言切换个人网站模板建站
  • 贵阳白云区疫情最新消息今天南京seo网络优化公司
  • 国际设计师网站百度账号24小时人工电话
  • 潍坊中小型网站建设公司搜索引擎的网站
  • 沈阳工伤保险做实网站网站建设报价
  • 芜湖做网站的邓健照片免费刷推广链接的软件
  • 免费发布出租房信息网站seo信息网
  • 诸城网站制作网络推广运营公司
  • 建设银行网站用户名是什么建网站免费
  • 一个电商网站开发要多久写一篇软文1000字
  • 张家港建设局门户网站今天的新闻 最新消息
  • 建设政府网站的费用中国宣布疫情结束日期
  • 别人用我公司权限做网站seo排名优化联系13火星软件
  • 上海哪个网站能应聘做家教的优化营商环境存在问题及整改措施
  • 宁波做网站的企业陕西疫情最新消息
  • 基于多站点的网站内容管理平台的管理与应用宁波正规站内优化seo
  • 中国建设手机银行网站优化二十条
  • 东营网站客户服务中心seo公司系统
  • 毕设源码网站今日全国疫情最新消息
  • wordpress系统邮件设置方法seo推广培训课程
  • 做电子商务网站多少钱miy188coo免费入口
  • 学做网站开发营销推广手段有什么