摘要:
背包k优解 题目链接 类似次短路算法,记录前\(k\)优解,转移即可 由于一个状态只会有\(2\)个来源(\(j,j-w[i]\)),问题变成了两个单调序列的前\(k\)大问题,直接不断取队头比较即可 时间复杂度\(O(nkV)\),我是直接暴力排序+卡常过的(别用\(STL\),好慢) 练习 #6 阅读全文
posted @ 2024-11-11 10:56
Zhone_lb
阅读(7)
评论(0)
推荐(0)
摘要:
KMP AC自动机 用于解决多模式串匹配的状态机,本质上为\(trie+KMP\) 在\(trie\)上匹配,失配时,利用\(KMP\)的思想,尝试跳到能匹配的最长后缀,这样可以尽可能使其产生贡献 使用失配数组\(fail[]\)记录该最长后缀的对应节点 失配指针 性质1:\(x\)最长后缀为\(f 阅读全文
posted @ 2024-11-11 10:54
Zhone_lb
阅读(15)
评论(0)
推荐(0)
摘要:
后缀排序 即对字符串\(S\)的所有后缀根据字典序排序 实现 算法1:暴力排序 直接\(O(n)\)比较,时间复杂度\(O(n^2\log n)\) 算法2:倍增优化 我们考虑长为\(2^k\)的串的比较,该串可以分为前后均长\(2^{k-1}\)的串,那么只要知道这两个串的排名,就可以对所有\(2 阅读全文
posted @ 2024-11-11 10:53
Zhone_lb
阅读(76)
评论(0)
推荐(0)
摘要:
快读 & 快写 快读 常用型: inline int read() { int x=0,op=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') op=-1; ch=getchar(); } while(ch>='0'&&ch<='9' 阅读全文
posted @ 2024-11-11 10:51
Zhone_lb
阅读(12)
评论(0)
推荐(0)
摘要:
排列数 \[A^m_n=\frac{n!}{(n-m)!} \]组合数 \[C^m_n=\frac{n!}{m!\ (n-m)!} \]性质: \(C^m_n=C^{n-m}_n\) \(\textcolor{red}{^*} C^m_{n+1}=C^m_n + C^{m-1}_n\) \(C^k_ 阅读全文
posted @ 2024-11-11 10:49
Zhone_lb
阅读(26)
评论(0)
推荐(0)
摘要:
建立虚树 先把关键点按\(dfn\)升序排序,单调栈维护树上一条链(\(dfn\)单增),初始为根节点\(1\) 逐个考虑关键点\(x\): 设\(lca=LCA(x,st[top])\),分类讨论: \(\hspace{0.5cm}\)①若\(lca=st[top]\),表明\(x\)和\(st[ 阅读全文
posted @ 2024-11-11 10:48
Zhone_lb
阅读(16)
评论(0)
推荐(0)