
题解:CF509C Sums of Digits
一道很好的构造题。简单来说,给你一个序列 $\{b\}$,$b_i$ 表示 $a_i$ 各位数字之和,请还原出序列 $\{a\}$。有两个附加条件,一是序列 $\{a\}$ 单增,二是 $\{a\}$ 尽可能的小。 对于第二个条件,很容易想到要贪心求...

一道很好的构造题。简单来说,给你一个序列 $\{b\}$,$b_i$ 表示 $a_i$ 各位数字之和,请还原出序列 $\{a\}$。有两个附加条件,一是序列 $\{a\}$ 单增,二是 $\{a\}$ 尽可能的小。 对于第二个条件,很容易想到要贪心求...

对于 $k$ 对有序的三元组 $(x,y,z)$ 为不能走的路线。本题对选择恰当的工具存储三元组有着较高的要求。 首先想到的是 map 与 set,令 set <int> ban[x][y] 记录形如 $x \to y \to z_i$ ...

由题可知这是一棵树,因此求每一条边经过的次数可以通过树上差分解决。而现在只有部分(有向)边需要花费,因此就需要找到一种能够记录单向花费的信息。考虑到一条边连接的两个点因在树上而深度不同,所以可以分为叶子指向父节点与父节点指向叶子两种边。形象化地,第一...

先考虑 $N = 1$ 的情况。若先手胜,我们称 $a_i$ 为必胜点,否则为必败点。显然 $1,2,3$ 均为必胜点;而 $4 = 1 + 3 = 2 + 2$,无论如何都是后手胜,所以为必败点。如果这时候你不知道如何去分析,可以尝试打出必败点的表...

先处理函数 $f_i$,有 $f_i = \sum \limits _{j = i - m}^{i - 1} f_j$,这个递推式显然可以通过矩阵乘法进行优化。设 $F_i$ 表示通过递推函数 $f_i$ 得到的矩阵,则有以下矩阵的递推(以 $m ...

有一个显然的贪心结论,就是先完成任务截止时间考前的,若在前面的都无法完成,那么后面的更加不可能完成。题目十分良心,$a_i$ 已经在输入时升序给出。 对于每个任务,需要用尽可能少地耗时完成尽可能多的百分比,每个计划的状态均为选或不选,这不就是 $0-...

部分参考了 这篇 xianggl巨佬的博客。 由于 $d \le 20$,考虑将不等关系的信息存放在数组中,转换为最大距离 $d$ 时的信息。考虑单独处理每一个点时,直接暴力修改与某一点 $x$ 距离为 $[0,d]$ 的点,此时不难分析出时间复杂度...

首先提醒一下不要读错题目,因为题目并没有要求旋转 $90$ 度是顺时针还是逆时针。 将 $dx,dy$ 分开考虑,题目转换为 $dx = A_1,dy = 0$,然后 $A_{2i + 1},A_{2i} (i > 0)$ 分别对 $dx,dy...

前言已经高二了,依旧是蒟蒻。应该是最后一次比赛了,所以打算拼一把。 就从国庆这一天开始写起吧。没啥逻辑,想到啥就说点啥,也算是记录一下一个信竞生的日常吧。 $\texttt{2022.10.01}$大概是开始零碎的复习了。 先从树链剖分入手,大概是每...

第一问很好求,相当于是所有点到 $s$ 或 $t$ 中较近的点的最短路径之和。换句话说,把 $s$ 与 $t$ 分别作为起点,跑两遍最短路后得到 $diss,dist$ 分别表示最短路,则答案即为 $\sum\limits_{i = 1}^{n} \...