随笔分类 - 题解
Hootime 做过的题
摘要:主观难度:【3】 我做几把。 答案显然是 \(2^{连通块个数} \bmod m\)。考虑怎么求连通块个数。 当最大和次大限制 \(x, y\) 满足 \(x \ge 2y\) 那么显然存在 \(\lceil \frac x 2 \rceil - y\) 个自由元。 考虑一个结论,即对于两个限制 \
阅读全文
摘要:主观难度:【2】 挺合理的。应该说 \(\mathrm O(n^3)\) 部分分容易教坏选手吗。 \(\mathrm O(n^3)\) 是容易想到的,正解和这个也没有任何关系。 考虑对 \(x\) 排序,发现答案必定是前半段以甜筒支付,后半段以钱支付,中间有一个混合支付。这容易证明,因为同样的甜筒对
阅读全文
摘要:主观难度:【1+】 好的。我是【数据删除】。 并查集题。 合并两个集合时把方案相乘即可,注意最后因为有全填这一方案所以总数加 \(1\)。 #include <bits/stdc++.h> #define llong long long #define N 1003 using namespace
阅读全文
摘要:主观难度:【3】 这啥? 我们需要求 \(a_n = (233a_{n-1}+666a_{n-2}) \bmod 10^9+7\),\(1 \le n < 2^{64}\)。 无脑上矩阵快速幂能拿 \(6\) 分,由于数据范围不太可能使用矩阵光速幂。 然后 Hootime 就去看了第一篇题解。 我们
阅读全文
摘要:什么啊。 简单 DP 题。注意到把 \(k\) 个面值为 \(n\) 的硬币替换为面值为 \(nk\) 的硬币是没有任何代价的,于是尽量换即可。 然后直接做就行了。复杂度 \(\mathrm O(nm + m \log m)\),其中 \(m\) 为值域。其实如果卡一卡可以做到 \(\mathrm
阅读全文
摘要:主观难度:【2】 其实我当时的想法已经非常接近了。但是也只是非常接近了。 前面忘了。 注意到在每一轮冒泡排序后,对于每个不是前缀最大值的数都会有一个数被移到后面去,亦即以该点为较后点的逆序对数量减一。 设以点 \(i\) 为较后点的逆序对数量为 \(b_i\),则有 \(\mathrm{answer
阅读全文
摘要:P4248 [AHOI2013] 差异 求一个定值减去所有后缀的 lcp 的和。 翻转以下序列可以转化成所有前缀的最长后缀,然后建出 SAM 在 parent 树上,对于每一个节点求它是多少对节点的 LCA 即可。 P3181 [HAOI2016] 找相同字符 求两个串的本质不同公共子串数量。 和上
阅读全文
摘要:为什么我每次都要在前面写一些东西。 T1 主观难度:【1】 我是傻逼。注意到票款是可以拆出来算的,于是先不算票款对所有关键点跑多源最短路,每次询问加上即可。 时间复杂度:\(\mathrm{O} (n \log n + q)\),带一个 \(32\) 的常数。 #include <bits/stdc
阅读全文
摘要:最烂的一把。\(85+0+20+100+18\) 什么实力。 T1 主观难度:【1+】 就是一个简单分类讨论,可惜场上糖了。 #include <bits/stdc++.h> #define llong long long #define double long double #define N 3
阅读全文
摘要:好的。 T1 主观难度:【0】 说真的我现在已经忘了 T1 是什么了,只记得很简单一眼了。 T2 主观难度:【0】 同。 T3 主观难度:【1】 我们注意到本题可以构建费用流模型,于是证明了题目的凸性。 然后 wqs 做就行了。 T4 主观难度:【0】 简单贪心,场上一眼秒了。 T5 主观难度:【3
阅读全文
摘要:目前唯一一次教练来查成绩的重现赛,同时也是打最烂的一场。 Markdown. 加粗符号位置随机没有特殊意义。 T1 主观难度:【1】 数据范围坑害 Hootime 想了半个小时的根号分治。 不算难的贪心。我们维护 \(k+1\) 个小根堆,第一关键字为当前该项目的能力值,如果当前能力达标就扔进下一个
阅读全文
摘要:主观难度:【2】 毕竟是才学的东西,挺合理的。 题目要我们对 \(\forall i \in [1, n]\) 求 \(\max_{ 1 \le j \le n}\{ \lceil a_j + \sqrt{|i-j|} \rceil \}\)。 这个 ceil 我们可以暂时不管它。看着绝对值我们感觉
阅读全文
摘要:主观难度:【3】 我草。神仙题。 Hootime 太菜了没能理解题解的理解于是自己理解了一个理解。(什么鬼) 我们能很容易地发现 \(dp_{u, i} = \sum \min_{0 \le j \le i} \{ dp_{v, i-j} + |w_v - j| \}\)。\(j\) 的意义是 \(
阅读全文
摘要:T1 主观难度:【0】 不会做的出门左转,一机房有初一小朋友正在学前缀和。 T2 主观难度:【1】 容易看出方程式 \(dp_i = dp_j + (n-j) \max_{k-j+1}^{i} a_k\)。这个式子是很容易想到斜率优化的。但是合并凸壳不太好做。 观察 Subtask 4,我们发现这个
阅读全文
摘要:想不通怎么在交互题里重剖,于是使用随机化。 我们随便定一个根,然后随便选一个节点。我们可以用两次对当前所有点询问距离的方式求到两点之间的链。这样我们就求出了一些边。 我们借用淀粉质点分治的思想,将链上的所有点作为根,这样我们就把树切割成了若干个子树。这时我们可以直接算出链上点到子树的距离。复杂度期望
阅读全文
摘要:带修莫队。那是什么。能吃吗。 我们可以把区间数颜色转化为二维数点,带修就是动态二位数点,即三维数点。 然后随便做了。 #include <bits/stdc++.h> #define llong long long #define N 4000006 using namespace std; #de
阅读全文
摘要:T1 主观难度:【0】 懒的写。 T2 主观难度:【0】 其实树上倍增和树剖都能做。 这里我懒得思考了于是花了 20 min 打了一个树剖。 T3 主观难度:【1】 简单组合数学题。草因为没看见最短路径数不超过 \(2^{15}\) 卡题了。 对于每个公民算出每个点到 \(s\) 和 \(t\) 的
阅读全文
摘要:一个不同以往的浪漫做法。( 和主流做法有很大不同。 容易将题目转化为最小费用路径覆盖。 我们联想最小路径覆盖怎么做,是建图跑最大匹配然后 \(n - \mathrm{maxflow}\)。正确是因为 \(\mathrm{maxflow}\) 可以表示删去的路径数量。 这里我们使用类似的做法。我们将边
阅读全文
摘要:很明显这是一个最小割的题。然后想怎么最小割。 我们先把所有正贡献加起来,然后把可能失去的正贡献和可能获得的负贡献建图跑最小割即可。 #include <bits/stdc++.h> #define llong long long #define N 60004 #define M 200005 us
阅读全文
摘要:说几句与这题无关的闲话。 学校好傻逼啊为什么要在学竞赛的时候突然把我们抓回去上文化。 说回正题。 这题要求最小路径覆盖。最小路径覆盖的一个经典解法就是拆点,建二分图。 输出路径的话在残量网络上找流完的边然后随便搞搞即可。 #include <bits/stdc++.h> #define llong
阅读全文

浙公网安备 33010602011771号