03 2020 档案
摘要:引入: 在 $RMQ$ 问题(区间最值)中,有一个著名的 $ST$ 算法。原理是通过倍增实现。给定一个长度 $N$ 的数列,$ST$ 算法在经过 $O(NogN)$ 的预处理后,能够以 $O(1)$ 的复杂度在线查询下标 $l\to r$ 之间的数的最值。 原理: 设 $F[i,j]$ 表示数列 $
阅读全文
摘要:题目描述 敌方有 $n$ 只怪,每只的攻击力为 $a_i$,血量为 $d_i$。 我方只有一只攻击力为 $b$ 的怪。 每回合战斗的流程为: 我方选择敌方某只怪进行攻击,令其血量减少 $b$,若此时该只怪的血量$\leq$ 0则死亡。 若敌方第 $i$ 只怪仍然存活,则对我方造成 $a_i$ 的伤害
阅读全文
摘要:中缀表达式求值 题目 给出一个表达式,其中运算符仅包含+, , ,/,^(加 减 乘 整除 乘方)要求求出表达式的最终值 数据可能会出现括号情况,还有可能出现多余括号情况 数据保证不会出现 =2^31的答案 数据可能会出现负数情况 输入: (2+2)^(1+1) 输出 :16 解题思路: 中缀表达式
阅读全文
摘要:$O(n)$ 求出字符串 $S$ 以每个点为中点的最长回文半径,包括长为偶数的子串 char s[N], ms[N]; int p[N]; inline void init(char *s) { ms[0] = '@', ms[1] = '#'; for (int i = 1; s[i]; ++i)
阅读全文
摘要:"TOC" 后缀数组 定义 令字符串 $S=S[1]S[2]S[3]...S[n]$ ,$S[i,j]$ 表示下标从$i$ 到 $j$ 的字串 $S$的后缀数组$A$被定义为一个数组,内容是 $S$的所有后缀经过字典排序后的起始下标。 即$A[i]$ 表示排名第几的后缀的起始下标 显然 $\fora
阅读全文