摘要: 极好的blog https://www.cnblogs.com/WAMonster/p/10118934.html ###概要 概述一下,就是区间上的双指针+分块+排序优化的优美暴力 一般情况下块长取$\sqrt{n}$ 复杂度$O(n \sqrt{n})$ ###块长选取 我们令数列长度为$n$, 阅读全文
posted @ 2023-02-22 19:23 Diamondan 阅读(17) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2023-02-18 15:08 Diamondan 阅读(0) 评论(0) 推荐(0)
摘要: ##前置知识 ###点积 $x_1x_2+y_1y_2$ 点积应用: 1.判断A和B的夹角是钝角还是锐角 2.求向量A的长度 3.求向量A与B的夹角大小 ###叉积 $x_1y_2-y_1x_2$ 叉积应用: 1.判断A与B的方向关系。 若 $A × B>0$,$B$ 在 $A$ 的逆时针方向 若 阅读全文
posted @ 2023-02-09 19:13 Diamondan 阅读(21) 评论(0) 推荐(0)
摘要: ###Before $2-SAT$ 一般形式为 $k-适定性问题$,简称 $k-SAT$ $k>2$为$NP$完全,暂不考虑,现考虑$2-SAT$ ###模型 有若干个包含2个元素的集合,只能选择每个集合中的一个元素,并给出一些条件(例:选a后不能选b),要求求出满足这些条件的选择,这个解也称为$2 阅读全文
posted @ 2023-01-30 09:34 Diamondan 阅读(27) 评论(0) 推荐(0)
摘要: struct state { int len,link; int nxt[31]; }; char s[N]; int n,ans,t[N],a[N],b[N],O; struct SAM { state st[N*2]; int siz,last; void init() { for(int i= 阅读全文
posted @ 2023-01-29 11:20 Diamondan 阅读(46) 评论(0) 推荐(0)
摘要: $Step1$ 在每一个循环过程中,先寻找到主元,并将主元通过行变换(无需列变换)移动到矩阵的主对角线上, 然后将主元所在的行内的所有元素除以主元,使得主元化为$1$ 然后观察主元所在的列上的其他元素,将它们所在的行减去主元所在的行乘以一定的倍数, 使得主元所在的列内、 除主元外的其他元素化为$0$ 阅读全文
posted @ 2023-01-28 13:54 Diamondan 阅读(71) 评论(0) 推荐(0)
摘要: Link: https://codeforces.com/problemset/problem/1473/E CF1473E 分层图最短路 分层图就是说,如果在一个带权图上,我们对于每条路径都可以将其中k条边做一些改变,比如不计算其权值, 那么我们就先建k+1层完全相同的初始图(权值为原值),然后层 阅读全文
posted @ 2023-01-28 10:50 Diamondan 阅读(14) 评论(0) 推荐(0)
摘要: SA后缀数组 sa数组:sa[i]=x表示对于所有的后缀进行排序(字典序)后,得到排名为i的以第x个字符开头的后缀 rk数组:rk[x]=i,是对于所有的后缀进行排序(字典序)后,得到以第x个字符开头的排名为i的后缀 sa[rk[x]]=rk[sa[x]]=x 常用算法:nlogn的倍增算法 对于每 阅读全文
posted @ 2023-01-14 17:47 Diamondan 阅读(47) 评论(0) 推荐(0)
摘要: ###哈哈哈希 ```cpp //一种好写且卡不掉的树哈希 //https://peehs-moorhsum.blog.uoj.ac/blog/7891 int hs(int x) { return x*x*x*1237123+19260817; } int h(int x) { int cur=h 阅读全文
posted @ 2022-11-25 14:07 Diamondan 阅读(24) 评论(0) 推荐(0)
摘要: 结构体封装的trie 之前TLE了很多次 原因是因为cnt用完没清空... #include <bits/stdc++.h> #define il inline #define re register using namespace std; const int N=3e6+10; il int r 阅读全文
posted @ 2022-11-24 07:51 Diamondan 阅读(32) 评论(0) 推荐(0)