随笔分类 - 题库—LOJ
摘要:题意 "题目链接" Sol 只会后缀数组+暴躁莫队套set$n \sqrt{n} \log n$但绝对跑不过去。 正解是SAM + set启发式合并 + 二维数点/ SAM + LCT 但是我只会第一种qwq 首先一个性质是两个前缀的最长公共后缀就是他们再parent树上的LCA的len 那么我们考
阅读全文
摘要:题意 "题目链接" Sol 首先对询问差分一下,我们就只需要统计$u, v, lca(u, v), fa[lca(u, v)]$到根的路径的贡献。 再把每个点与$k$的lca的距离差分一下,则只需要统计每个点与$k$的lca深度。这个东西等价于所有的链与$k$到根的链的并。 树剖+主席树维护一下。这
阅读全文
摘要:题意 "题目链接" Sol 我们可以把图行列拆开,同时对于行/列拆成很多个联通块,然后考虑每个点所在的行联通块/列联通块的贡献。 可以这样建边 从S向每个行联通块连联通块大小条边,每条边的容量为1,费用为$i$(i表示这是第几条边)。 从每个点所在的行联通块向列联通块连边,容量为1,费用为0 从每个
阅读全文
摘要:题意 "题目链接" Sol 搞个BSGS板子出题人也是很棒棒哦 cpp include define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second define int long long def
阅读全文
摘要:题意 "题目链接" Sol $$f[i], f[j] + (h[i] h[j])^2 + (w[i 1] w[j]))$$ 然后直接套路斜率优化,发现$k, x$都不单调 写个cdq就过了 ~~辣鸡noi.ac居然出裸题&&原题~~ cpp include define Pair pair defi
阅读全文
摘要:题意 "链接" Sol 第一次做在二分图上博弈的题。。感觉思路真是清奇。。 首先将图黑白染色。 对于某个点,若它一定在最大匹配上,那么Bob必胜。因为Bob可以一直沿着匹配边都,Alice只能走非匹配边。到最后一定是Alice不能移动。 否则Alice必胜。这个我不会证,但是又举不出反例来qwq。手
阅读全文
摘要:题意 "链接" Sol 神仙题+ "神仙做法" %%%%%%%% 我再来复述一遍。。 首先按照$y$坐标排序,然后维护一个扫描线从低处往高处考虑。 一个连通块的内状态使用两个变量即可维护$ans$表示联通块内的最大答案,$f$表示联通块内$k=1$的数量 若当前的水超过了当前的挡板,那么将当前联通块
阅读全文
摘要:题意 "链接" Sol $10^5$次询问每次询问$10^5$个区间。。这种题第一感觉就是根号/数据分治的模型。 $K$是个定值这个很关键。 考虑$K$比较小的情况,可以直接暴力建SAM,$n^2$枚举$w$的子串算出现次数。询问用个$n^2$的vector记录一下每次在vector里二分就好。 $
阅读全文
摘要:题意 "链接" Sol ~~自己都不知道自己怎么做出来的系列~~ 不难观察出几个性质: 1. 最优策略一定是先把某一行弄黑,然后再用这一行去覆盖不是全黑的列 2. 无解当且仅当无黑色。否则第一个黑色所在的行$i$可以先把第$i$列弄出一个黑色,接下来第$i$列的黑色可以把第$i$行全部弄成黑色。 然
阅读全文
摘要:题意 "链接" Sol 势能分析。 除法是不能打标记的,所以只能暴力递归。这里我们加一个剪枝:如果区间内最大最小值的改变量都相同的话,就变成区间减。 这样复杂度是$(n + mlogn) logV$的。 简单的证明一下:如果没有加的话,每个节点会被除至多log次, 总会除4nlogn次,每次区间加会
阅读全文
摘要:题意 "链接" Sol 生成函数题都好神仙啊qwq 我们考虑枚举一个长度$len$。有一个结论是如果我们按$N len$的余数分类,若同一组内的全为$0$或全为$1$(?不算),那么存在一个长度为$len$的border。 有了这个结论后我们考虑这样一种做法:把序列看成两个串$a, b$,若$a_i
阅读全文
摘要:题意 "题目链接" Sol 下面的代码是$O(nlog^3n)$的暴力。 因为从一个点向上只会跳$logn$次,所以可以暴力的把未经过的处理出来然后每个点开个multiset维护最大值 cpp include define Pair pair define MP(x, y) make_pair(x,
阅读全文
摘要:题意 "题目链接" Sol 神仙题Orz 首先不难看出如果我们从$a_i$向$i$连一条边,我们会得到以$0$为根的树(因为每个点一定都有一个入度,出现环说明无解),同时在进行排列的时候需要保证父亲节点一定在孩子节点之前出现 接下来考虑直接贪心。对于某些权值很小的点,我们需要让其尽早出现,同时又要满
阅读全文
摘要:题意 "题目链接" Sol 质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 没有质数的方案 那么直接dp,设$f[i][j]$表示到第i个位置,当前和为j的方案数 $f[i + 1][(j + k) \% p] += f[i][j]$ 矩乘优化一下。 cpp include de
阅读全文
摘要:题意 "题目链接" Sol 神仙反演题。在洛谷上疯狂被卡常 "Orz shadowice" cpp include define Pair pair define MP make_pair define fi first define se second define LL long long co
阅读全文
摘要:题意 "题目链接" Sol 首先把第一个人能吃掉的食物删掉 然后对每个人预处理出能吃到的食物,直接限流跑最大流就行了 判断一下最后的最大流是否等于重量和 注意一个非常恶心的地方是需要把除1外所有人都吃不到的食物删掉
阅读全文
摘要:题意 "题目链接" Sol 考虑不合法的情况只有两种: 1. 进去了 再次进去 2. 没进去 但是出来了 显然可以用未知记录抵消掉 直接开个set维护一下所有未知记录的位置 最优策略一定是最后一次操作位置的后继 同时我们需要记录一下每个人是否在里面
阅读全文
摘要:题意 "题目链接" Sol 考虑直接对询问的集合做MinMax容斥 设$f[i][sta]$表示从$i$到集合$sta$中任意一点的最小期望步数 按照树上高斯消元的套路,我们可以把转移写成$f[x] = a_x f[fa] + b_x$的形式 然后直接推就可以了 "更详细的题解" cpp inclu
阅读全文
摘要:题意 "题目链接" Sol ~~反演套路题?~~ 不过最后一步还是挺妙的。 套路枚举$d$,化简可以得到 $$\sum_{T = 1}^m (\frac{M}{T})^n \sum_{d \ | T} d \mu(\frac{T}{d})$$ 后面的显然是狄利克雷卷积的形式,但是这里$n \leqs
阅读全文
摘要:题意 "题目链接" Sol min25筛的板子题,直接筛出$g(N, \infty)$即可 筛的时候有很多trick,比如只存$\frac{N}{x}$的值,第二维可以滚动数组滚动掉 cpp include define LL long long // define int long long us
阅读全文