上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
该文被密码保护。 阅读全文
posted @ 2022-03-08 22:33 cbdsopa 阅读(12) 评论(0) 推荐(1)
该文被密码保护。 阅读全文
posted @ 2022-03-08 16:44 cbdsopa 阅读(5) 评论(0) 推荐(0)
摘要: 前置知识 基数+计数排序 后缀排序 不考虑暴力了,直接搞上正解。 我们设 \(sa[i],rk[i]\) 分别表示第 \(i\) 名的子串初始点在哪,以及以 \(i\) 开头的子串的排名。 我们考虑倍增的做法。先将长度为 \(1\) 的子串排序求出。 然后每次倍增长度,设长度为 \(w\),然后我们 阅读全文
posted @ 2022-03-07 00:22 cbdsopa 阅读(59) 评论(0) 推荐(0)
摘要: 基数排序思想就是先按照优先级低的关键字排序,然后一层层来就可以得到正确的答案。 先来理解其正确性:我们对于一串数的低优先级关键字排序后,得到的序列再按照高优先级关键字排序,就可以得到相同高关键字内按照低关键字排序的结果。但是要保证不在高关键字排序下无故交换原本的序列顺序。 可能你要问这样做的话为什么 阅读全文
posted @ 2022-03-06 16:45 cbdsopa 阅读(67) 评论(0) 推荐(0)
摘要: 最近才发现的一个套路,以前以为二进制分组只能搞背包,结果发现还有一些更为优秀的操作。 我们对于一个不支持动态操作的数据结构,拆分为 $log$ 个,然后每次加入元素加入到一个新的组中,如果最新的两个数据结构元素个数相等,就合并两个元素。然后暴力重构这个合并得到的数据结构。 然后查询的时候就查询每一个 阅读全文
posted @ 2022-02-25 21:09 cbdsopa 阅读(90) 评论(0) 推荐(0)
摘要: 虽然没什么特别需要说的,但还是建了这么个东西。 文章都可以在分类和标签中找到!实在找不到还可以站内搜索。 lougu Link 阅读全文
posted @ 2022-02-24 11:59 cbdsopa 阅读(84) 评论(0) 推荐(0)
摘要: 简单的东西就简单说说把,实际上就是一棵树,每条边上有一个字符,然后一个点代表的字符就是根到达它的路径上的字符按遍历顺序组成的字符串。 #include<bits/stdc++.h> using namespace std; int n,m; int edge[500010][26],tot; int 阅读全文
posted @ 2022-02-24 11:53 cbdsopa 阅读(80) 评论(0) 推荐(0)
摘要: 思想:把字符串变成数值比较。 我们选取这个 hash 公式: \[hash(s)=\sum_{i=1}^{len} s_i\times p^{len-i}(mod\ M) \]hash方法 自然溢出hash 我们使用 unsigned long long hash[N]; (\(hash[k]\)) 阅读全文
posted @ 2022-02-24 11:52 cbdsopa 阅读(98) 评论(0) 推荐(0)
摘要: 手动模拟出奇迹 #include<bits/stdc++.h> using namespace std; inline int read(){ int s=0,f=1; char ch=getchar(); while(ch<'0'||'9'<ch) {if(ch=='-') f=-1;ch=get 阅读全文
posted @ 2022-02-24 11:52 cbdsopa 阅读(47) 评论(0) 推荐(0)
摘要: AC自动机 其实是trie树的改图。每次状态转移在末尾增添一个字符。 其使用失配指针 \(fail\) 指向自动机中自己的最长后缀,以达到多模匹配的效果。 模板题 代码: 其实也不多说了,就是trie加一个fail指针。 其中fail指针如何求?我们遍历全图,当遍历到一条链的第二个点时,我们在初始状 阅读全文
posted @ 2022-02-24 11:51 cbdsopa 阅读(33) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页