- 博客(16)
- 收藏
- 关注
原创 树状数组模板
利用原数组构造差分数组,区间修改时只需修改t[l]和t[r+1],单点查询时求前缀和。若需查询[l,r],可以query(r)-query(l - 1)上述查询函数为[1,x]区间查询。区间修改,区间查询建议用线段树。
2024-04-11 16:29:53
123
1
原创 kmp模板
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。string::find()函数:是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数,也可能是长整数。如果查找失败,返回string::npos,即-1(当然打印出的结果不是-1,而是一个很大的数值,那是因为它是无符号的)。配合string::find()函数使用。
2023-10-30 21:32:44
81
1
原创 大数取模_模板
1234=((1*10+2)*10+3)*10+41234=((1∗10+2)∗10+3)∗10+4,即从高位到低位,分别对大数的每一位上的数取模再乘10,再加上下一位上的数重复上述操作。以1234为例,将大整数分解成这种形式:1234 = ( ( 1 ∗ 10 + 2 ) ∗ 10 + 3 ) ∗ 10 + 4。
2023-10-26 23:21:00
115
原创 线段树模板
当我们需要修改一个数组单点/区间的值,或查询数组区间 [l, r] 内的最大值/最小值时,我们就可以选择线段树这种数据结构来优化修改/查询这两种操作的时间复杂度。
2023-10-02 20:51:28
65
1
原创 快写快读板子
在数据类型为long long 或__int128时,需要更改read函数的返回类型已经函数中局部变量x和f的类型。特别需要注意的事:快写快读模板只能操作整数,对于浮点数来说用不了。另一种快读板子是往read里面传入需要读入数据的变量地址。
2023-09-24 11:25:04
128
1
原创 记录2023ICPC热身赛第二场L题(字符串哈希匹配)
原题是类似于回文串,但是每个回文对应的不止是一个字符,而是一串,且总串的字符数必须为偶数。知乎上一题解做法为字符串哈希匹配。
2023-09-24 10:57:23
320
1
原创 并查集基础模板
并查集,一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。比如说,我们可以用并查集来判断一个森林中有几棵树、某个节点是否属于某棵树等。善于处理不相交的分团问题。
2023-09-19 23:49:26
37
1
原创 快速幂——位运算、高精度求幂
思想是:每次操作将指数除以2,而相应的底数做平方运算,这样每次操作可以将很大的指数缩小,可以减少循环次数,同时结果不变。原理:(a* b) % m = ((a % m) * (b % m)) % m。时间复杂度:O(logn)
2023-09-16 20:55:36
307
原创 前缀积过大时的一种处理方法
有时候我们需要计算一个数组前k个元素的乘积,但是数据范围如果较大,存储乘积的变量即使开成long long范围也会爆,这时我们可以在每次乘元素之前判断乘完之后是否会超过INF,来防止前缀积过大。
2023-09-16 17:47:04
156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人