摘要:
希望不鸽。 arc104 C. 注意一个条件是每层只能有一个人上或下。于是同一个ci相等的连续段一定是前一半上后一半下。那就很好判断一个区间是否能划成一个连续段。暴力dp。 D. (没写)设平均数是x,那么把所有数字减去x后比x小的数和比x大的数和互为相反数,于是避免了对选择数字个数的讨论。设fij 阅读全文
摘要:
一个建边的 trick。用虚拟源点来串联一些边从而防止平方级的两两连边 还有 21年sccpc的L 阅读全文
摘要:
待补 upd on 2023.11.6 鸽了半年来补这个学习笔记 起因是觉得自己点的技能点已经远远不够了,所以重新开始点技能点 之后希望所有学的内容都要写学习笔记以防自己忘了 Z 函数的定义:Z[i] 表示 s 本身与 si 开头的子串的最长公共前缀。同时规定 Z0=0 Z[aaaaa]={0,4, 阅读全文
摘要:
描述:给出一个字符串s,将s循环移位若干次之后使得字符串的字典序最小。 朴素的思路:对于每一个位置为结果字符串的开头去暴力做。显然最坏复杂度O(|S|^2) 于是考虑优化这个过程。 假设对于不同的两个下表i和j,如果有s[i,i+1,..,i+k-1]=s[j,j+1,..,j+k-1]和s[i+k 阅读全文
摘要:
题面 题意:给出字符串 s 和 t,每次操作将 s 中出现的第一个 t 删去,直到不能删为止。求最后的串。 |s|<=1e6 题解:hash 做法。(此题也有 kmp 和权值线段树做法) 因为涉及到删除操作,所以我们要动态的实现这个过程。所以考虑开一个栈来存储当前留下的字符。 然后每有一个字符入栈, 阅读全文
摘要:
题面 题意:有两个字符串 a 和 b,问 b 中有多少个本质不同子串可以由 a 删除若干个字符得到。 |a|,|b|<=3000 题解:字典树(这个题做法很多,后补)。 把字符串 b 的每个子串打到字典树上。 然后因为 3000^2*26 这个东西比较大,所以不能用 nxt[id][26] 来存储, 阅读全文