摘要: 一些记号: \(|s|=len(s)\) \(t_0\):初始状态 \(endpos(t)\):字符串\(s\)中子串\(t\) 的结束位置的集合,集合大小就是\(t\)在\(s\)中出现的次数 \(link(v)\): 状态\(v\)的后缀链接 \(len(v)\):状态\(v\)对应的最长子串的 阅读全文
posted @ 2025-06-29 22:11 lghjl 阅读(19) 评论(0) 推荐(0)
摘要: 用途 : 用来解决形似\(a^x\equiv c\mod P(a,c,P为常数且P为质数,a为P的原根,x为要求的数)\) 插播: \(x\)的范围为\(0\le x\le P-1\) 证明: 因为\(a\)是\(P\)的原根,所以$\left { a0,a1,\dots,a^{P-1} \righ 阅读全文
posted @ 2025-06-26 10:29 lghjl 阅读(8) 评论(0) 推荐(0)
摘要: 当需要取模的程序中有减法时,需要将答案加上模数再模一下 例如: ans = pow(2, n) % mod; ans -= (n + 1); ans = (ans + mod) % mod; P3723 给定两个长度为n的序列,可以平移(例如,a={1,2,3,4}, 平移后a={2,3,4,1}) 阅读全文
posted @ 2025-06-26 10:29 lghjl 阅读(20) 评论(0) 推荐(0)
摘要: Hard Process(题面) 大意:给定一个长度为\(n(0<=n<=10^5)\)的序列,序列中只包含0或1,现有k次机会可以将0改为1,问,k次机会前最长连续1序列的长度并且输出这个序列(只需一个)。 解法:二分答案+前缀和 证二分答案的单调性: 先解释check函数:现有一个需要查询的长度 阅读全文
posted @ 2024-09-30 18:56 lghjl 阅读(22) 评论(0) 推荐(0)
摘要: 标题:正如标题所示 当n=35时。爆搜的复杂度是$O(2^n)$,肯定是不能接受的,这时候就可以用折半搜索了。 折半搜索的思想是:先搜一半数据的答案,在搜另一半数据的答案,最后合并这两个答案,得到最终的答案。 例如此题:Maximum Subsequence 可以先爆搜搜出前半段的答案,再搜出后半段 阅读全文
posted @ 2024-09-27 20:42 lghjl 阅读(15) 评论(0) 推荐(0)
摘要: 在沸腾的水中放入勺子,勺子内部的水没有沸腾。 在厨房煮面条时,在水沸腾了以后,我把一个勺子放入水中,惊讶地发现,虽然勺子外的水沸腾,但是勺子内部的水却出人意料地平静下来了,这令我十分诧异。这是为什么呢? 一开始我认为可能是因为勺子的初温太低不足以让勺子内部的水达到沸点,可是当我把勺子放在沸腾的水中很 阅读全文
posted @ 2024-08-23 18:45 lghjl 阅读(69) 评论(1) 推荐(0)