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

昆明网站建设要多少钱app网站模板下载不了

昆明网站建设要多少钱,app网站模板下载不了,网站备案信息地址,wordpress速卖通插件[python刷题模板] 前缀函数/next数组/kmp算法 一、 算法数据结构1. 描述2. 复杂度分析3. 常见应用4. 常用优化二、 模板代码1. 裸前缀函数2. 树上kmp3. 裸kmp三、其他四、更多例题五、参考链接一、 算法数据结构 1. 描述 前缀函数和next数组基本上是一个东西#… [python刷题模板] 前缀函数/next数组/kmp算法 一、 算法数据结构1. 描述2. 复杂度分析3. 常见应用4. 常用优化二、 模板代码1. 裸前缀函数2. 树上kmp3. 裸kmp三、其他四、更多例题五、参考链接一、 算法数据结构 1. 描述 前缀函数和next数组基本上是一个东西但储存的内容不同。 他们是kmp算法的基础。但真的不太好理解以及不好写背不过。 前缀函数π(i)可以在O(n)的时间计算出来数组内每个前缀的前缀函数。参考 oiwiki前缀函数与 KMP 算法kmp还可以结合字典树搞ac自动机待施工。前缀函数π[i]代表的前缀s[:i1]和后缀s[-i:]相同的情况下是前缀长度。 简单来说 pi[i] 就是子串 s[0… i] 最长的相等的真前缀与真后缀的长度。 next数组是指模式串在i位置匹配失败后应该向前跳到哪个位置开始继续匹配。 2. 复杂度分析 预处理O(n)查询O(n) 3. 常见应用 字符串查询。 4. 常用优化 从意义上来说前缀函数值得是前后缀相同的长度next数组是匹配失败后模式串指针j要去的位置。 因此kmp搜索用next数组写法简单点(参考模板代码3)但找前后缀用前缀函数更直观模板代码1。 二、 模板代码 1. 裸前缀函数 例题: 4808. 构造字符串 这题暴力能过但还是前缀函数nb。 # Problem: 构造字符串 # Contest: AcWing # URL: https://www.acwing.com/problem/content/4811/ # Memory Limit: 256 MB # Time Limit: 1000 msimport sys import bisect import random import io, os from bisect import * from collections import * from contextlib import redirect_stdout from itertools import * from array import * from functools import lru_cache from types import GeneratorType from heapq import * from math import sqrt, gcd, infif sys.version 3.8: # ACW没有combfrom math import combRI lambda: map(int, sys.stdin.buffer.readline().split()) RS lambda: map(bytes.decode, sys.stdin.buffer.readline().strip().split()) RILST lambda: list(RI()) DEBUG lambda *x: sys.stderr.write(f{str(x)}\n)MOD 10 ** 9 7def prefix_function(s):计算s的前缀函数n len(s)pi [0] * nfor i in range(1, n):j pi[i - 1]while j 0 and s[i] ! s[j]:j pi[j - 1]if s[i] s[j]:j 1pi[i] jreturn pi # ms def solve():n, k RI()t, RS()mx prefix_function(t)[-1]if mx 0:return print(t * k)suf t[mx:]print(t suf * (k - 1))if __name__ __main__:solve()2. 树上kmp 链接: 1367. 二叉树中的链表 试了下树上kmp是负优化但可能是数据问题。 class Solution:def isSubPath(self, head: ListNode, root: TreeNode) - bool:path []while head:path.append(head.val)head head.nextn len(path)def get_next(p):n len(p)nxt [0]*nnxt[0] -1j,k0,-1while j n-1:if k -1 or p[j] p[k]:j1k1if p[j] p[k]:nxt[j] nxt[k]else:nxt[j] k else:k nxt[k]return nxtnxt get_next(path)# print(nxt)def dfs_kmp(tree, j):if j n:return Trueif not tree:return Falseif j -1 or tree.val path[j]:return dfs_kmp(tree.left,j1) or dfs_kmp(tree.right,j1)else:return dfs_kmp(tree,nxt[j]) 3. 裸kmp 链接: 28. 找出字符串中第一个匹配项的下标 class Solution:def strStr(self, haystack: str, needle: str) - int:m,n len(haystack),len(needle)# def get_next(p):# n len(p)# nxt [-1] * n# j, k 0, -1# while j n - 1:# if k -1 or p[j] p[k]:# j 1# k 1# if p[j] p[k]:# nxt[j] nxt[k]# else:# nxt[j] k# else:# k nxt[k]# return nxt# nxt get_next(needle)# print(nxt)# i j 0 # while i m and j n:# if j -1 or haystack[i] needle[j]:# i 1# j 1# else:# j nxt[j]# if j n:# return i - j # return -1def prefix_function(s):计算s的前缀函数n len(s)pi [0] * nfor i in range(1, n):j pi[i - 1]while j 0 and s[i] ! s[j]:j pi[j - 1]if s[i] s[j]:j 1pi[i] jreturn pipi prefix_function(needle)print(pi)i ,j 0,0 while i m and j n:while j 0 and haystack[i] ! needle[j]:j pi[j-1]if haystack[i] needle[j]: j 1if j n:return i - j 1i 1return -1三、其他 四、更多例题 五、参考链接
http://www.dnsts.com.cn/news/114937.html

相关文章:

  • 广州教育网站建设网站推广排名怎么做
  • 设计类网站策划书哪个公司的卡网络最好
  • 怎么做自己的网站卖东西个人养老金交15年领多少
  • 泉州制作网站软件织梦后台 data移除后 网站无法打开
  • c2c网站的主要功能自动生成logo的软件
  • 简历表格 个人简历手机版绵阳做网站优化
  • 深圳网站建设报价表电商模式有哪几种
  • 怎么增加网站流量福州网站公司
  • 深圳网站制作公司信息怎么给钓鱼网站做防红
  • 牡丹江做网站的公司星沙网站优化seo
  • 商城网站建设费用wish跨境电商平台官网
  • 外贸响应式网站建设wordpress提醒
  • 推广网站大全腾讯云新人服务器
  • 网站title怎么修改360中小网站建设
  • 电子商务网站建设与维护 答案崇州市微信端网站建
  • 上海企业网站黄页网站的百度百科怎么做
  • 短租网网站开发 项目背景少女心仙气手工
  • 网站上怎么做福彩卖家软件技术岗位有哪些
  • 怎么做电子商务网站宝塔面板做织梦网站
  • 做什么网站吸引人计算机专业有哪些
  • 建设银行软件官方网站建筑设计自考
  • 建个网站花钱做百度推广二次开发包
  • 遵义网站建设公司招聘站长seo软件
  • 在网上做国际快递淘宝网站建设德育网站的意义
  • 正规的饰品行业网站开发asp网站免费
  • 企业网络推广做网站推广公司网站建设 合肥
  • 建设网站网站多少钱sun0769东莞阳光网
  • dede 电商网站模板帮忙做网站的协议
  • 专门做旅游的视频网站有哪些萧山做网站设计
  • 镇海建设交通局网站深圳科技网站建设