自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 后缀排序学习笔记

建议参考:后缀数组——处理字符串的有力工具 后缀排序即对一个字符串的每一个后缀进行排序,如果暴力进行排序,考虑到字符串比较的复杂度,效率至少是O(n2)O(n2)O(n^2)级别的. 考虑依次对每个位置开始的2i2i2^i个字符进行分组,把他们看成一个字符串,从小到大枚举iii进行处理,sj,j+2i−1sj,j+2i−1s_{j,j+2^i-1}的排名即(sj,j+2i−1−1+sj+2i−...

2018-08-27 10:40:30 1488

原创 BZOJ4162: shlw loves matrix II

4162: shlw loves matrix II 如果我们已知矩阵AAA的特征多项式p(x)p(x)p(x),其最高次数为kkk,由哈密尔顿-凯莱定理得知 p(A)=a0An+a1An−1+⋯+akAn−kp(A)=a0An+a1An−1+⋯+akAn−kp(A)=a_0A^n+a_1A^{n-1}+\dots+a_kA^{n-k} 显然a0=1a0=1a_0=1,那么 An=a1An...

2018-08-26 22:52:19 350

原创 洛谷P3586 [POI2015]LOG

P3586 [POI2015]LOG 数组里每个数至多被减去sss次,所以把大于sss的数看做sss,然后再yy一下此时数组里所有数之和大于等于scscsc是可行的充要条件,然后离散化之后树状数组搞一搞就好了. Code...

2018-08-24 10:23:13 291

原创 洛谷P3441 [POI2006]MET-Subway

P3441 [POI2006]MET-Subway 此题路径可以相交 不难想到选取的III条路径都是从叶子到叶子存在最优解,那么发现貌似叶子节点中最多只有2I2I2I个会被覆盖(每条路径从叶子到叶子,覆盖222个),类似的,发现从叶子节点往内推一层也是最多只有2I2I2I个会被覆盖,那么大胆猜测,如果从叶子节点向内拓扑分层后每一层最多只有2I2I2I个会被覆盖,考虑到每一层的节点并不一定有2I...

2018-08-24 09:57:02 217

原创 (扩展)BSGS学习笔记

现有同余方程 ax≡b(mod p)ax≡b(mod p)a^x\equiv b(mod\space p) 其中(a,p)=1(a,p)=1(a,p)=1 如果暴力枚举xxx的话,根据欧拉定理 aφ(p)≡1(mod p)aφ(p)≡1(mod p)a^{\varphi(p)}\equiv 1(mod\space p) 效率是O(p)O(p)O(p...

2018-08-23 23:19:55 189

原创 51NOD1690 区间求和2

1690 区间求和2 记s[i]为1~i中质数的个数(这里认为2不是质数),则a[i]和a[j]对答案的贡献为a[i]*a[j]*s[i+j-1]-a[i]*a[j]*s[j-i] 对于前一部分考虑每一个s[k]要乘以的a[i]*a[j]的总和,即i+j-1要等于k,这里可以用fft维护。s[j-i]的部分类似,可以将序列翻转后再求卷积。需要注意的是这里的k只可能是偶数。 Code...

2018-08-23 15:13:01 321

原创 HDOJ6436 Problem K. Pow2

Problem K. Pow2 预处理出凑出正负2的次幂所需的最少数字个数c[0/1][i] f[0][i]表示凑出了i及之前的位置,之后的位置都是0的最小花费 f[1][i]表示凑出了i及之前的位置,之后的位置都是1(假设2^b减去了一个数,i+1到b-1位都是1) if (a[i]=='0') { cmin(f[0][i],f[0][...

2018-08-23 12:40:39 222

原创 BZOJ4566: [Haoi2016]找相同字符

4566: [Haoi2016]找相同字符 对第一个串建出后缀自动机,统计出每个节点对答案的贡献,再用第二个串跑一边统计答案。 //# pragma GCC optimize ("O2") //# pragma comment(linker, "/STACK:1024000000,1024000000") #include<bits/stdc++.h> #define lb(x...

2018-08-20 17:52:49 192

原创 BZOJ3413: 匹配

3413: 匹配 对主串建出后缀自动机与parent树,计算出每个节点最左边的r值(第一次出现的位置)与dfs序,建出n棵可持久化线段树,第i棵维护第一次出现位置小于等于i的parent树叶子节点个数,每个点在其dfs序的位置插入。询问时从0开始枚举询问串长度,考虑一个点now的right集合中第一次出现位置小于等于k的元素个数,那么就在第k棵线段树中询问parent树中now的子树。 Cod...

2018-08-20 09:40:47 364

原创 ARC013C - Ants on a Circle

C - Ants on a Circle 可以看做n只蚂蚁坐n辆车,两车交会时交换车上的蚂蚁,显然我们可以轻易求出每辆车最后的位置,而且每只蚂蚁的相对位置不变,蚂蚁1的后继是蚂蚁2,蚂蚁n的后继是蚂蚁1。 假设从0开始最左边一辆车上蚂蚁编号为1,最右边一辆车上蚂蚁编号为n,可以推出当一辆车顺时针跨过0时其他车上蚂蚁编号+1,即 {1,2,3,4,5,…,i,i+1,…,n}{1,2,3,4,...

2018-08-14 18:59:20 198

原创 洛谷P4121 [WC2005]双面棋盘

洛谷P4121 [WC2005]双面棋盘 使用线段树维护。线段树每个节点维护该区间左右两列每个点的连通性,逐层合并节点即可。 Code

2018-08-14 18:23:56 221

原创 Link_Cut_Tree学习笔记

洛谷P2147 [SDOI2008]洞穴勘测 LCT用来维护若干棵无根树,使用伸展树来实现.每棵伸展树维护原树上的一条重链,一棵伸展树中的根节点(非原树的根)的父亲单向指向另一棵伸展树中的它原树中该重链起始点的父亲节点. struct lct { data tr[maxn]; void init() { LL i; fo(i,0,n)...

2018-08-14 07:56:23 129

原创 左偏树学习笔记

洛谷P3377 【模板】左偏树(可并堆) 设dpidpidp_i为点iii的子树中深度最大的点的深度,则左偏树满足性质dplson>dprsondplson>dprsondp_{lson}>dp_{rson},因此我们在合并两棵左偏树x,yx,yx,y(xxx应该在yyy上方)的时候,就递归地将xxx的右儿子和yyy合并,这样可以快速达到空节点. struct leftist_...

2018-08-10 21:22:45 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除