07 2020 档案
摘要:一、何为分块 分块算法实质上是一种是通过分成多块后在每块上打标记以实现快速区间修改,区间查询的一种算法。其均摊时间复杂度为 \(O(\sqrt n)\) 分块算法相较于各种树形数据结构,具有简便易写,方便调试等多种优点。在同等数据规模下,如 $1e5$ ,其时间效率并不会低太多,在考试时反而是一种有
阅读全文
摘要:写在前面 自闭ing... 题目 A.玛雅文字 刚开始打了一个非常zz的代码,具体多zz看代码就知道了: //zz般的代码 #include <bits/stdc++.h> using namespace std ; const long long BASE = 13331 ; const int
阅读全文
摘要:尝试拿一道例题(玩具装箱)来讲明白斜率优化。 1) 题目大意 有$n$个物品,每个物品有一个体积$c_i$,你可以制作无限个箱子,假设你制作的箱子长度为$x$,那么你所需花费的费用就是$(x-L)^2$,现在要求出把$n$个物品都放入箱子里的最小费用。 2) 普通DP 由题意我们很快就可以得出一个D
阅读全文
摘要:先放一道例题[USACO15DEC]Max Flow P 题目大意 给你一棵$n$个点的树,有$k$条管道,每条管道有个起始点和终结点。从起始点到终结点的路径上每个经过的点权值都要$+1$ 现在问你这$k$条管道都处理完后权值最大的点的权值是多少 \(N\le50000\) \(K\le100000
阅读全文
摘要:题目链接 题目大意 有一个字符串和$m$个操作,每个操作都有一定的代价,判断是否能通过一系列操作使该字符串变成回文串。并求出最小代价。 分析 \(Floyed\) 给出这些操作,会发现有些操作是完全没有用的(因为有更好的组合可以达到此目的),所以我们可以先跑一遍$Floyed$,求出这26个字母与空
阅读全文