摘要: ##【二维st表】【二维单调队列】 ###修筑绿化带 分析: 首先可以枚举大矩形的右下角,用前缀和算出大矩形的面积和。 接下来考虑快速计算出面积最小的小矩形是多少,可以发现对于一个固定的大矩形,小矩形的右下角的取值范围也构成一个矩形,定义w[i][j]为以(i,j)为右下角,C*D的矩阵的面积和,那 阅读全文
posted @ 2022-04-20 21:19 glq_C 阅读(143) 评论(0) 推荐(0)
摘要: ##题目 给定N个点,M条边的无向图,N<=1000,M<=N*(N-1)/2。求1N的最短路中把任意一条边删去后,1N新的最短路长度的最大值。 ##Solution 一种暴力是先把最短路求出后,枚举每条边,将其删去,再重新跑最短路,用不加优化dij,复杂度O(N^3) 发现很难删去一条边,并很快的 阅读全文
posted @ 2022-04-10 11:48 glq_C 阅读(70) 评论(0) 推荐(0)
摘要: fhq不仅比splay跑得快,还比splay好写得多。 ###Code模板 #include<bits/stdc++.h> using namespace std; //#define int long long inline int read() { int x=0,w=1;char ch=get 阅读全文
posted @ 2022-04-09 21:04 glq_C 阅读(192) 评论(0) 推荐(0)
摘要: 用dij求最短路有一个优化常数的技巧:若当前用来更新的点为终点,则直接返回答案 阅读全文
posted @ 2022-04-08 22:23 glq_C 阅读(51) 评论(0) 推荐(0)
摘要: ##【分层图最短路】【学习笔记】 例题1 分析: 设f[i][j]为从1走到i,已指定j条路径边权为0,边权和的最小值,那么有 f[i][j]+w[i,y]——>f[y][j], f[i][j]——>f[y][j+1],\((i,y)\in E\) f[1][0]=0. 则答案为f[n][k] 实际 阅读全文
posted @ 2022-04-08 16:44 glq_C 阅读(45) 评论(0) 推荐(0)
摘要: bsgs要注意初始的$mul=a^0=(a?1:0)$,千万不要直接赋成1 $\sigma_0(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)=1]$,证明 求单个逆元可以用(费马小定理/欧拉定理)+快速幂,或用扩欧求解二元一次不定方程即可。对于线性求 阅读全文
posted @ 2022-04-06 17:07 glq_C 阅读(56) 评论(0) 推荐(0)
摘要: 字符串hash单次询问,冲突的概率为$\frac{len-1}{mod}$ 多次调用getsa求后缀数组时,记得清空t[]和y[],原因是y还起到判断y[sa[i]+k]==y[sa[i-1]+k]的作用。 求后缀数组时,要保证s[]数组中的值初始均为正数,且在桶数组t[]的下标范围之内。否则,须先 阅读全文
posted @ 2022-03-29 16:05 glq_C 阅读(49) 评论(0) 推荐(0)
摘要: #【字符串】【KMP】 ##0. 引入 先看一道模板题: 【模板】KMP字符串匹配 要求一个字符串(称为模式串)在另一个字符串(称为文本串)中的所有出现位置,朴素的方法是对于文本串的每一位,检查以该位为起点,是否能匹配到一个模式串。复杂度O(NM) 当然我们可以用字符串哈希优化到线性,但有更准确的做 阅读全文
posted @ 2022-03-18 17:10 glq_C 阅读(55) 评论(0) 推荐(0)
摘要: #【李超线段树应用】【斜率优化】 李超树可以用于维护斜率优化。 ##斜率优化的维护 一般来说,斜率优化有三种维护方式: 维护凸包 对于状态转移方程:\(f(i)=A(i)B(j)+C(i)+D(j)\) 可以写成:\(D(j)=-A(i)B(j)+f(i)-C(i)\) 把所有的决策点$j$,计作二 阅读全文
posted @ 2022-03-03 15:43 glq_C 阅读(169) 评论(0) 推荐(0)
摘要: #【树链剖分&李超线段树】【 [SDOI2016]游戏】【题解】 ###前置知识:李超线段树 ###[SDOI2016]游戏 ###题目大意 给定一棵树,每次在一条链上加入一条以深度为下标的线段,每次查询一条链上的最小值。 ###Solution 加入线段和查询最值,可以想到用线段树维护,又因为是对 阅读全文
posted @ 2022-03-03 14:58 glq_C 阅读(51) 评论(0) 推荐(0)