lcp
  • 2024-10-02YC342A [ 20240922 CQYC NOIP 模拟赛 T1 ] 前缀(lcp)
    题意给定\(n,m\)以及长为\(n\)的字符串\(S\)。你需要构造字符串\(T\)使得\(\sumLCP(S,T[i,...,m])\)最大。求出这个最大值。\(n,m\le5\times10^3\)。Sol首先不难发现答案一定可以由若干\(S\)的前缀拼成。考虑找到最小的无法被拆为前缀的子段,显然这个
  • 2024-09-07LCP 485. 最大连续 1 的个数[lleetcode -11]
    从今天起,我们的算法开始研究搜索,首先就是DFS深度优先搜索(depth-firstseach,DFS)在搜索到一个新的节点时,立即对该新节点进行遍历;因此遍历需要用先入后出的栈来实现,也可以通过与栈等价的递归来实现。对于树结构而言,由于总是对新节点调用遍历,因此看起来是向着“深”的方向前进
  • 2024-09-01【3.10】贪心算法-找出对应 LCP 矩阵的字符串
    一、题目对任一由n个小写英文字母组成的字符串word,我们可以定义一个nxn的矩阵,并满足:lcp[i][j]等于子字符串 word[i,...,n-1]和word[j,...,n-1]之间的最长公共前缀的长度。给你一个nxn的矩阵lcp。返回与lcp对应的、按字典序最小的字符串 word。如果
  • 2024-08-28后缀相关学习笔记
    应用任意子串\(\text{LCP}\)长度$LCP(i,j)=\min\limits_{k=rk_i+1}^{rk_j}ht_k$运用此性质,可以有通用套路:\(\text{Height}\)分段,下面题目会有讲解。练习题P2743[USACO5.1]乐曲主题MusicalThemes最长不重复多次出现子串。\(\text{Height}\)分段经典题目。首先求
  • 2024-08-23生成魔咒
    先考虑没有修改操作,如何求不同的子串数量,这是后缀数组的经典应用。所有子串就是所有后缀的所有前缀。先将所有后缀按照字典序排序,然后求出\(height\)数组,从\(1\)循环到\(n\),对于排名为\(i\)的后缀来说,新增的后缀个数就是\(\text{len}[i]-height[i]\)(前者表示排名为\(i\)的后缀的长
  • 2024-08-20LCP:60 排列序列[leetcode-4]
    LCP:60排列序列给出集合[1,2,3,...,n],其所有元素共有n!种排列。按大小顺序列出所有排列情况,并一一标记,当n=3时,所有排列如下:"123""132""213""231""312""321"给定n和k,返回第k个排列。示例1:输入:n=3,k=3输出:"213"示例2:输入:n=4,
  • 2024-07-28Solution - Atcoder ARC114F Permutation Division
    令\(a\)为题目中的\(P\)。首先考虑后手的重排策略是什么。因为\(a\)是个排列,元素互不相同,那么肯定就是按照每一段的第一个数的大小,越大的放在越前面。那么当\(a_1\lek\)的时候,显然先手会把以\(1\simk\)开头来划分段。因为否则存在一个开头\(>k\)的段,后手把其放
  • 2024-06-21(nice!!!)LeetCode LCP 20. 快速公交(记忆化搜索+小顶堆+贪心)
    LCP20.快速公交思路:逆向记忆化搜索。思考从target到0所花的最小时间。通过哈希表来进行记忆化搜索,避免重复遍历。细节看注释classSolution{public:typedeflonglongLL;typedefpair<LL,LL>PII;constintmod=1e9+7;intbusRapidTransit(int
  • 2024-06-08后缀数组
    1概念首先我们需要先定义后缀,这个其实很简单。我们定义后缀\(i\)表示以第\(i\)个字符开头的后缀,相当于\(s[i,n]\)。而后缀数组则主要关系到两个数组:\(sa\)和\(rk\)。其中\(sa\)表示将所有后缀按字典序排序后第\(i\)小的后缀的编号(即后缀开头所在位置的下标),这就是后
  • 2024-05-03G2. Division + LCP (hard version)
    G2.Division+LCP(hardversion)Thisisthehardversionoftheproblem.Inthisversion$l\ler$.Youaregivenastring$s$.Forafixed$k$,consideradivisionof$s$intoexactly$k$continuoussubstrings$w_1,\dots,w_k$.Let$f_k$bethemaximal
  • 2024-04-09反正这个博客已经废弃了,那么随便发电也没事的吧
    随便写写!!!!!!!!!!!!假设读者已经知道\(SA\)和\(height\)数组。定义\(lcp(i,j)\)为字符串以\(i\)为起点的后缀和以\(j\)为起点的后缀的最长公共前缀。intlcp(inti,intj){ intl=rnk[i],r=rnk[j]; if(l>r)swap(l,r); l++; intlen=lg[r-l+1]; returnm
  • 2024-04-03CF1909G Pumping Lemma 题解
    题目链接题目要求我们对合法三元组进行计数,直接做是困难的,因此考虑通过枚举确定一部分元素再进行判定求解,那我们固定什么呢?固定\(x\)和\(y+z\)的分界线没啥用,因此我们枚举确定\(S\)中\(x+y\)和\(z\)的分界线,这样能确定一长串\(y^{k-1}\)所在的区间。接着我们不难想
  • 2024-03-31Z函数
    s=input()n=len(s)z=[0]*nleft,right=0,0#z[i]表示s和s[i:]的LCP长度,规定z[0]=0!foriinrange(1,n):#如果在z-box里,那么更新它的z[i]的值!ifi<=right:z[i]=min(z[i-left],right-i+1)#相当于暴力更新whilei+z[i]
  • 2024-03-26字符串 hash
    (由于字符串hash和整数hash是两个东西,以下将字符串hash称作strash)前情提要:strash:我来!(非常好数据,使我的strashWA掉)strash是什么?strash有什么用?该如何避免上述情况?strash是什么strash的原理其实很简单:将一个字符串当作\(b\)进制数。Soyouwroteawrongcod
  • 2024-03-21Edu39
    D.TimetableProblem-D-Codeforces转化成背包问题dp预处理很容易看出来是背包,但是怎么把区段内的时间转化成物品很吃力。首先物品的体积肯定不能直接用题目给的时间点,而是用逃课的数量。然后对物品的价值进行预处理预处理出每天的日期每次处理一天留下\(k\)个\(
  • 2024-03-08使用Web Vitals针对性的优化前端LCP指标
    1、安装WebVitals浏览器插件2、打开设置3、勾选打印日志 4、打开浏览器控制台即可查看需要优化的点5、LCP耗时的构成部分"LCPsub-part":"TimetoFirstByte""Time(ms)":39这个部分时间表示服务器的首个字节到达所花费的时间。这是指从浏览器发出请求到服务
  • 2024-03-07后缀数组学习笔记
    后缀数组学习笔记定义所谓后缀,指的是对于一个字符串\(s\),如果它的下标从\(1\)到\(n\),那么对于\(s\)的一个后缀\(i=s[i\dotsn]\)。所谓后缀数组sa[],就是按照这些后缀的字典序排序后得到的数组。更具体的,后缀数组sa[i]中存储的是字符串\(s\)中排名为\(i\)的后缀的
  • 2024-02-18前端衡量页面性能的指标都有哪些?
    以用户为中心的性能指标FirstPaint首次绘制(FP)Firstcontentfulpaint首次内容绘制(FCP)Largestcontentfulpaint最大内容绘制(LCP)Firstinputdelay首次输入延迟(FID)TimetoInteractive可交互时间(TTI)Totalblockingtime总阻塞时间(TBT)Cumulativelayoutshift累
  • 2024-02-05CF1902
    A只要不是全\(1\)即可。B二分完成天数。C\(x\)取差的\(gcd\),\(a_{n+1}\)见缝插针。D用一个map记录按原始操作序列,要走到\((x,y)\)的所有可能前缀。同时\(px[i]\)记录走了前\(i\)步到的\(x\)坐标,\(py[i]\)记录走了前\(i\)步到的\(y\)坐标。对于一次询
  • 2024-01-27洞察驱动增长:数字化转型中的用户行为分析与优化策略
    文末给出一个用户行为分析的案例在数字化转型中,越来越多的企业认识到对用户的实时深入洞察,以及数据资产的沉淀已成为业务增长的重要引擎。用户行为结合场景带来的用户洞察和业务增长带来新的可能,是每一个做管理、营销、运营的人都应该深入了解和探究的。分析用户行为,优化用户体验使
  • 2023-12-26Leetcode LCP 14. 切分数组
    https://leetcode.cn/problems/qie-fen-shu-zu/description/给定一个整数数组nums,小李想将nums切割成若干个非空子数组,使得每个子数组最左边的数和最右边的数的最大公约数大于1。为了减少他的工作量,请求出最少可以切成多少个子数组。示例1:输入:nums=[2,3,3,2,3,3]
  • 2023-12-25CF1051C Vasya and Big Integers 题解
    Problem-1051E-CodeforcesVasyaandBigIntegers-洛谷感谢女队提交记录推荐给我的一道题\(Orz\)首先\(O(n^2)\)的\(dp\)是simple的,如果你没看出来你可能是像我一样把题目看错了设\(dp_i\)表示考虑前\(i\)个的方案数,转移枚举长度后比较字典序。虽然看
  • 2023-12-23P9523
    先orzoyds。但是为什么没有oyds的简单预处理做法啊。区间dp。\(dp_{i,j}\)表示凑出区间\([i,j]\)的最小代价。考虑枚举当前区间\([i,j]\)与\(k\),表示\([i,j]\)在区间\([p,j]\)中出现了\(k\)次,且\(p\)取得最大值。则有转移:\[\min(dp_{p,j},dp_{i,j}+B+k\times
  • 2023-12-23P3893 [GDOI2014] Beyond 题解
    P3893[GDOI2014]Beyond题解思路称第一个字符串为\(A\),第二个字符串\(B\)。考虑枚举环长\(L\),那么如果\(L\)是可行的,当且仅当存在一个位置\(i\),使得\(A_{1\simi}=B_{L-i+1,L},A_{i+1\simL}=B_{1,L-i}\),也就是\(A_{1\simL}\)的一个前缀和\(B_{1\s
  • 2023-12-21扩展 KMP/exKMP(Z 函数)
    模板链接QwQZ函数,又称扩展KMP(exkmp),可以\(O(n)\)求出一个字符串的所有后缀与这个字符串的LCP长度。怎么叫做扩展KMP但是前置知识没有KMP,Z函数的做法与Manacher有着异曲同工之妙,即存下了目前已扩展到的右端点最靠右端的后缀\(i\)与原串的LCP:\([i,i+Z[i]-1]\)