09 2020 档案
摘要:经过长时间的思考,我发现直接考虑对一条链进行修改是很难做出本题的,可能需要换一个方向。 可以发现本题中有操作的存在,是没有可以反过来做的做法的,因此正难则反这条路应该走不通。 那么唯一的办法就是简化这个操作或是转化问题了,不难发现前者应该是后者的基础,于是我们应该先将重心放在前者上。 可以发现本题是
阅读全文
摘要:不难发现为了逐步确定每个点于其相邻点的相交情况,那么我们只可能有两种逐步构造的方式:从根开始往下构造,以及从子树往根上构造。经过很久的尝试,我发现从根往下构造是一件很困难的事情,于是我们可以反过来考虑第二种构造方式。 既然是从子树开始构造,那么我们先想一下最底层是如何构造的。不难发现最底层实质上是一
阅读全文
摘要:这是一个很经典的问题,给定 k+1 个点值,如何快速确定这个 k 次多项式? 不难发现可以使用待定系数法然后使用高斯消元即可做到 O(n3)。但是有些时候我们的目的并非一定要计算出这个多项式的系数,而仅仅想知道这个多项式在某个位置的点值,那么有没有什么直接通过这给定
阅读全文
摘要:首先可以思考一下每次能删去的点有什么性质。 不难发现,每次能删去的点都是入度恰好为 1 的那些点(包括 ai→bi 的有向边)。 换句话说,每次能删去的点既要是树上的叶子节点,并且不会被任意一条有向边 ai→bi 指向。那么
阅读全文
摘要:初看本题毫无思路,只能从特殊的 K=1 出发。 但是直接考虑构造一组字典序最小的方案还是不好构造,可以考虑先手玩一下样例。通过自己手玩的样例可以发现,貌似没有被选出来的数在原排列中都是递增的子序列。比如说 1 6 5 3 4 2 可以证明 2 5 6
阅读全文
摘要:可以看出本题是由单独的两问组成的,我们先来思考第一问。 可以发现如果想直接使用期望性来计算每个深度对答案的贡献,你会发现由于同一形态的树是可以由很多种操作序列操作而成的,不好去计算这样的操作序列个数,因此需要换一种思路。当直接使用期望线性性不好计算时,另一个方法一般是考虑使用 dp。 观察一
阅读全文
摘要:A 可以发现不论往怎样一个串往后加上两个 0 或两个 1 其奇数位和偶数位上的差值都是相同的。因此我们两位两位考虑这个 01 串,对于相邻两位相同那么直接留下,否则留下 0 即可。 B 每轮直接贪心找一个能使得当前 \gcd 最大的数往后填即可。 C 为了能找到每个数的取值,
阅读全文
摘要:A. 尛你 \%\%\% B. 题意:你需要在平面上画 n(n \le 10 ^ 9) 个 1 \times 1 的正方形,且顶点都在整点上,每次可以画一条长度为 1 的线段,画过的线段可以新生成一条并且可以平移(跟原线段构成矩形的对边)且不算画的数量,问最少需要画多少次。
阅读全文
摘要:ARC065(2020.8.3) A 尛你 \%\%\% B 翻译是错的,自闭了好久。先并查集将地铁连接的连通块联通,再枚举每条道路边判断是否在同一连通块即可。 C 这翻译不知道在讲什么,建议看原题面。 可以发现对于每个点以哈密顿距离 d 画圆是一个以该点为几何中心,将对角线长度为
阅读全文
摘要:ARC064(2020.7.23) A 直接贪心即可。 B 手玩样例可以猜出这样一个结论,如果两端字符相同,如果字符串长度为奇数那么后手赢,否则先手赢,两端字符不同则相反。证明的话先从特殊情况开始入手,假如只存在一种字符出现了多次(除去两端字符的出现次数)因为保证了开始的字符串是合法的,那么这种出现
阅读全文
摘要:ARC063(2020.7.16) A A 题如果洛谷评分很低就不看了。 B 可以发现一定是选择在一个地方全部买完然后在之后的一个地方全部卖完,那么我们就只需要即一个后缀最大值就可以计算答案了。但题目要求我们使得利润至少减一,实际上我们将买的地方价格提升 1 即可,因为 a_i
阅读全文
摘要:ARC062(2020.7.13) A 可以考虑直接同时扩大这次的两个票数,那么使得两数均大于之前位置的票数就是最优的,扩大的话直接除一下上取整即可。 B 贪心即可。 C 可以发现这个东西如果直接计数非常不好记,于是首先的一个想法是记正方体展开图的数量,实际上这个更为麻烦,需要我们换一种思路。注意到
阅读全文
摘要:ARC061(2020.7.10) A 暴力 dfs 即可。 B 考虑统计以每个点为矩阵中心的答案,显然一个黑点只会影响周围九个黑点,使用 map 来记录这个值,每次修改修改一下答案数组即可。 C 首先是一个非常直接的做法,我们可以类似 dijkstra 的做法,使用堆来维护
阅读全文
摘要:ARC060(2020.7.8) A 背包板子 B 首先感觉这个东西应该不能直接 O(1) 算出来,那么复杂度应该就是 O(\log n), O(\sqrt{n}), O(\sqrt{n} \log n) 之类的,看数据范围可以猜到应该不是 O(\log n) 的(其实是不知
阅读全文
摘要:ARC058(2020.7.4) A 从高到低依次填入能填的最小值即可。 B 首先可以发现这个区间实际上只有横着的一条边有用,那么我们可以在边界上枚举中转点使得不经过非法区域即可。 C 挺神的一道题。首先我们会发现如果直接算出合法序列非常不好做,因为可能一个合法序列中可能有多个满足条件的句子,那么很
阅读全文
摘要:拿到本题后,可以观察到一个性质,如果出现了 c_i \ne c_{i + 1} 那么我们一定可以确定一个位置的值,这启示着我们将 c_i 相同的部分单独拿出来考虑再将最后的答案合并。于是可以先思考一个更为特殊的问题,所有 c_i 都相同的答案。为了让所有区间都被满足填了一个
阅读全文
摘要:先让我们探索一下两条非树边以及树边能构成简单环的条件是什么,你会发现将第一条非树边的两个点在树上形成的链记为 W_1,另一条即为 W_2,那么当且仅当 W_1, W_2 有交时才能满足条件。因为当 W_1, W_2 没交时,那么中间一定会经过一些树边不被这两条链覆盖,
阅读全文
摘要:可以发现因为运算只有位运算,因此每一位是互不影响的,因此我们可以将每一位拉出来单独考虑。你会发现对于每一位而言,不论在何时都只有两种取值,并且一旦我们知道了这一位进入这条链的取值,最后出来的答案也是确定的。因此我们可以考虑直接维护出 0 / 1 进入这段链的取值,这个我们可以直接通过 \(LCT
阅读全文
摘要:首先我们可以考虑一下 x 关于 y 的对称点的坐标,不难发现就是 x + 2 \times (y - x),那么期望的增量就会增加 2 \times (y - x)。不难发现我们可以令 dp_{i, j} 表示 j 第 i 次操作(即假设进行了 \
阅读全文
摘要:看到本题以后,想到了之前做过的一道题 [HEOI2013]SAO,用类似的方法思考了一下,发现不能这样搞,因为在那道题中是可以将一段元素随意插到一段中间的,但在本题中还需要乘上相应的概率,这个概率非常不好算。 于是只能换一个角度思考,直接解决这个问题貌似很难可以考虑先从特殊的问题出发。先从部分分的一
阅读全文
摘要:首先一个想法就是可以考虑令 dp_{i, j} 表示当前考虑到了第 i 个商店,当前到了时刻 j 能走过最多的商店数量。但是你会发现这个 dp 转移的顺序并不是简单的从左往右转移,因为可能先走后面一个商店再走前面的一个商店,这时候我们一般的处理方法就是找到一种拓扑序使
阅读全文
摘要:首先可以发现这样一个事实:在每次操作当中,都有三张牌是已经固定的,只有两张牌是不确定的,于是我们可以发下每一次操作的状态可以简单的使用这两张牌来描述,于是可以考虑令 dp_{i, j, k} 表示当前进行到第 i 轮操作,当前剩下来的两张牌分别为 j, k 的最大得分。直接转
阅读全文
摘要:首先可以观察到这样一个事实,如果 (x, y) 出队,那么只会影响 x 这一行,以及最后一列的排布。并且可以发现,每次一个人出队,总会对最后一列有影响,因此我们可能需要将最后一列单独拿出来维护。让我们来想一想,什么东西可以支持删除一个数,插入一个数,查询排名为第几的数,显然 \(Sp
阅读全文
摘要:首先注意一下题面要求,使得选出的线段两两要么包含要么不相交,也就是说一条线段可能会出现不相交的几条线段,而这些线段上面也可能继续这样包含线段。然后我们可以发现我们要做的实际上是在这条线段上选取几条线段然后递归求出子问题,这是一个 dp 的形式,令 f_i 表示在线段 i 上最
阅读全文
摘要:题目当中有三条限制,我们来逐一考虑。对于第一条限制,每次走动的增加量 x_i \le M_x, y_i \le M_y,可以发现一共走的步数是确定的,那么就相当于解这样两个方程组: x_1 + x_2 + \cdots x_R = Tx \(y_1 + y_2 + \cdots y_
阅读全文
摘要:可以发现这样一件事情,不同种类的特产之间对方案是不会有影响的,因此我们可以每次考虑将一种特产分配给所有人。于是就有了一个 dp,令 dp_{i, j} 表示考虑完前 i 种特产,已经有 j 个人分配到了特产的方案。转移时考虑当前新增几个人获得特产,先将当前特产给这些人
阅读全文
摘要:直接计数是很不好记的,但 “恰好” 这两个字眼太有警示性了,我们可以考虑使用二项式反演来解决这个问题。 回忆二项式反演的流程,我们先考虑钦定一些位置合法其他位置随意的方案数。然后我们惊奇地发现这样一个事实,假如我们钦定某个位置 i 满足 |P_i - i| = 1,显然 \(P_i
阅读全文
摘要:因为不存在任意两个数相同,那么设糖果比药片大的组有 x 个,药片比糖果大的组有 y 个,那么我们有: x + y = n, x - y = k 即: x = \frac{n + k}{2}, y = \frac{n - k}{2} 估本题实质上是问有多少种方案使得糖果
阅读全文
摘要:因为要保证每行都必须填一个 1,于是我们需要逐层考虑并在这层填若干个 1,为了能描述当前的状态,我们可以令 dp_{i, j} 表示当前已经填完前 i 行,有 j 列已经填有 1 的方案。转移的话可以枚举当前有多少个位置是刚刚添加 1,其余的位置随意: \(d
阅读全文