摘要:
很奇怪的题,好像见过类似的套路但完全想不到。和同学讨论了好久…… 考虑直接求出每个点能到达的形状显然是不太能低于 $O(nm)$ 的,这个询问的信息一定有所隐含。 将原图的互相到达关系形容为一个有向图,那么可以到达点数最少的集合一定是将这个有向图强连通分量缩点后,某些出度为 $0$ 的强连通分量中的 阅读全文
摘要:
简单题。 新树的直径一定经过了翻倍的点或者为原树的直径。 先使用换根求出每个点子树内以及子树外最远点的距离,然后接下来对于一个询问的点,我们关心每个儿子内及这个子树的补树内最远的点距离加上这条边翻倍后的长度的最大值和次大值。 假设某个子树内最远点为 $f_v$,到该子树的边的长度为 $w_v$,那么 阅读全文
摘要:
Problem 一步一步做出来的。很有意思。 考虑 $C =0$(弱化版)。 我们的目的是为了经过所有题目给出的边一次,考虑构造一个这样的图: 考虑每段相邻两个点之间被经过次数,从左到右和从右到左的次数是相同的,需要将少的一者的次数补至多者的次数,这同时也是答案的下界,答案不可能小于该值(过去了肯定 阅读全文
摘要:
很典但也很妙的题。 首先有一个显然暴力的 dp:从前往后一个一个换,记录目前剩的货币的数量,$f_{i,j}$ 目前换完第换完第 $i$ 种货币,保留了 $j$ 张,可以赚到多少钱,转移如下: 兑换货币: $$ f_{i,\lfloor\frac{j}{x_{i-1}}\rfloor+c_i}={f 阅读全文
摘要:
此处假设读者已经通过 E1,会 $O(n^2)$ 地解决本问题: 在每一个点时做的操作就是“把儿子大小构成的数集合分成差尽可能小的两部分”。 接下来来解决 E2: 首先一个观察就是单个问题“把儿子大小构成的数集合分成差尽可能小的两部分”是一个 $\sum siz_i \leq n$ 的背包可行性问题 阅读全文
摘要:
我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。我要喝六个核桃。 很多时候有意义的状态是不多的或是呈现某种特殊分布的,特此记录一些很需要脑子的东西。 当你发现一个 $n^2 阅读全文
摘要:
记两个做法。 首先一定存在某些区间将鱼卡住不能往外吃。 容易发现区间形成树形结构,我们要查询不被任何区间覆盖的点数。 因为一个区间跳到包含区间至少会让和翻倍,所以深度是 $O(\log)$ 的。 1 赛时想了一堆笨办法维护这个树形结构,比如用树套树维护最小的包含它的区间,这样很难做到低于 $3\lo 阅读全文