题解
文章平均质量分 82
smart_stupid
@smart_stupid
展开
-
ABC353 A-E题解
ABC353 A-E题解原创 2024-05-14 22:40:07 · 686 阅读 · 0 评论 -
ABC350A-F题解
ABC350A-F题解原创 2024-04-22 14:46:01 · 847 阅读 · 0 评论 -
ABC349 A-E题解
ABC349A-E题解原创 2024-04-21 12:19:34 · 794 阅读 · 0 评论 -
P1131 [ZJOI2007] 时态同步 题解
这是一道树形 DP 的题,十分简单,既然要使到根节点的距离相等,我们不妨先处理一个子树,再一层一层往上处理,最终处理到根节点,这就是树形 DP。首先,我们创建一个dis数组,disi表示第i个节点到叶子节点的距离,那么对于它的所有子树而言,我们要找到一个距离最大的节点,让所有子树都和那个节点同步,再创建一个dp数组,dpi表示第i个子树保持同步的次数,dpi就是它的所有子树的和加上所有子树同步到距离最大节点的次数。同时,设自己的子树为v。原创 2024-01-28 14:44:55 · 1257 阅读 · 0 评论 -
P3627 [APIO2009] 抢掠计划 题解
题目说了,我们可以重复经过一些 ATM 机,但是里面的前只能取一次。原创 2024-01-30 09:51:42 · 272 阅读 · 1 评论 -
P1262 间谍网络 题解
这就是一道强连通分量板题。原创 2024-01-30 11:23:40 · 426 阅读 · 1 评论 -
P1005 [NOIP2007 提高组] 矩阵取数游戏 题解
这个题是一道高精度加上区间动规的题,题不难,但是码量有亿点多。将整个矩阵分成多个数列来处理,因为两个数列之间的取数关系互不干扰。我们设dpij为矩阵还剩从i到jdpijmaxdpijdpi−1j2m−ji−1×ai−1dpij12m−ji−1×aj1然后从外部扩展到内部就可以了。这里我们无法得到剩下区间没有的情况,只能从dpkk的情况在转移到答案。原创 2024-01-28 11:24:20 · 1233 阅读 · 0 评论 -
P1966 [NOIP2013 提高组] 火柴排队 题解
由此可见,前面两项都是定值,就只有第三项是变化的,又因为让差小就可以让总体小,所以我们尽量让数列里面的对应元素变小。数组里面的下标,在这个号码上求一遍逆序对即可。数组里的标号要配对所交换的次数就是逆序对的数量。数组里面的每一个数的号码就是与之配对的数在。所以这个题也不难,就是要实现的东西有点多。,然后交换数列里面相邻两个元素,使得。数组里面的元素配对,就要将。数组里元素是第几大,将。原创 2024-01-28 19:24:03 · 779 阅读 · 0 评论 -
P6348 [PA2011] Journeys 题解
此题要用线段树优化建图写,这里顺便讲解一下线段树优化建图。如果我们要从一张图的一个节点向另外k个节点连边:那么如果我们要执行2⋅105次这样的操作,每一次都要连105条边,阁下又将如何应对?如果我们在线段树上连边:这样就只用连logN条边。如果我们要从一个区间向一个点连边呢?多建一棵树,要进行最短路操作就从另外一棵树开始(我们称之为出树,另外一棵为入树)。这样就成功地从34节点向1节点连了一条边。如果要区间向区间连边,就多建一个虚点,就可以了。原创 2024-03-24 16:55:14 · 697 阅读 · 0 评论 -
ABC346 A-G 题解
ABC346 A-G题解原创 2024-03-24 16:14:24 · 1065 阅读 · 0 评论 -
ABC300 A-E 题解
ABC300题解原创 2024-03-21 23:16:51 · 827 阅读 · 0 评论 -
ABC345 A-D 题解
所以在 DFS 中,我们对于每一个未被放置的矩形,直接讨论左上角第一个未被放置的位置就行了。个字符是否是等号,如果全部是,说明这个字符串是符合条件的,否则,不符合条件。的情况:为了方便讨论,我们可以让这个字符和前面的字符交换,一共可以和两个。交换,因为这样交换后和之前是一样的,我们先不讨论这种情况。最后,我们还要讨论交换后和以前相等的情况:如果有一个字符。位置必须被放置,那么我们放置下一个方块时,可以直接讨论。告诉我们,交换后的字串可以和交换前的字串相等。的情况:这个时候要被交换的一个字符是。原创 2024-03-17 13:41:44 · 1015 阅读 · 0 评论 -
ABC344 A-E题解
不易不难,写到5题很简单,但是要有足够的思维能力。原创 2024-03-09 23:19:25 · 1247 阅读 · 0 评论 -
骑士比武 题解
由于此题是某校 Online Judge 里面的题目,所以只给出题意。原创 2024-03-08 23:34:29 · 869 阅读 · 0 评论 -
ABC343A-E题解
然后如果有两个立方体并不相交,那么两个立方体的相对位置对答案没有影响。把取出来的每一位的数放在数组里,再用一个数组反着存每一位,如果两个数组相等,说明。等于一个常数,那么输出这个常数加上一,否则,输出这个常数。,然后当一个人的分数发生改变时,设这个人之前的分数为。的个数变成了一,说明多了一种分数,分数种类数加一。,说明少了一种分数,分数种类数减少一,如果改变后。数组存储每一个分数的个数,一开始分数为。,就再次随机一次,否则,就输出这个数。我们存下每一个人的分数,再用一个。所以对于剩下两个立方体的坐标,从。原创 2024-03-02 23:53:02 · 936 阅读 · 0 评论 -
ABC342A-E题解
我们得到在时间限制下每一条路线最后一班车的时间,再跑一遍迪杰斯特拉算法,终点的时间为无穷大,然后让每一个点到达的时间尽量大,去找下一条边时,要乘坐时间不能超过当前时间的列车。根据上一个定理,我们可以推导出:如果一个完全平方数除以另一个完全平方数,如果结果是整数,那么结果也是一个完全平方数。对于一个完全平方数,我们将其分解质因数,每一个质因数的个数一定是偶数,这个不难理解。,那么结果一定是一个完全平方数,这个定理可以根据上面说的推导出来。对于每一个寻问,找到这两个数的位置,输出值较小的那个数的坐标,完事。原创 2024-02-25 13:03:09 · 811 阅读 · 0 评论 -
CodeForces Round 925 Div.3 A-F 题解
对于每一张截图,除开第一个数字,对于每一个剩下的数字,我们往后面的一个数字建一条有向边,不需要建多条,因为其他的关系可以通过这些边推导出来。我们选择每一种填充颜色,因为要覆盖整个序列,所以只有前缀和后缀才关系到我们的代价,对于当前数,一直找,知道找到数组前缀和后缀里的所有元素都和当前数相等,剩下的就是我们要覆盖的。对于每一个找过的元素,记录下来,不再讨论。如果遍历完都没有退出,就表明有解,输出答案,走人。我们发现,对于每一张截图,除开第一个数字,如果。大,最后统计答案位数,判断输出,完结撒花。原创 2024-02-14 14:56:51 · 1149 阅读 · 1 评论 -
P1379 八数码难题 题解
这个题就是一个 BFS 的经典题目,将整个序列状态放到队列里,一一检索,如果达到答案就结束搜索。我们存放空位所在的位置,每一次取出时就不用寻找空位在哪里了。枚举将上下左右移到空位的情况,如果当前情况没有被搜索到就放到队列里,如果当前状态就是目标状态就停止搜索,退出。我们可以将整个序列当成一个数字存进一个 map 里去重,map 很快,查询只有log级别,所以可以在很优秀的时间复杂度内完成问题。这个题还可以用双向广搜,从起点和终点同时开始搜,时间复杂度更优,但是我不会。原创 2024-01-28 18:17:51 · 242 阅读 · 0 评论 -
P1018 [NOIP2000 提高组] 乘积最大 题解
这个题我使用了记忆化搜索,记录当前搜到的点和分成的段数的乘积最大值,如果我们搜到这个点后发现这个点的记忆化数组比我们当前的乘积大就没必要再搜下去了,如果比我们的乘积小就更新记忆化数组为我们当前的乘积。然后处理高精度,这里我推荐将高精度写成结构体,重载高精运算符,这样写着要自然一些。建议压位,如果不压位可能会超时。什么是压位?就是将整个数当做一个10^k进制数,k最好为4。原创 2024-01-28 11:08:18 · 269 阅读 · 0 评论 -
[NOIP1998 提高组] 进制位 题解
其实这个题只要知道他是n进制的,就可以轻松写出暴力代码。因为它有n个不同的数,而如果是n+1进制就会有一些数不能用给定字母表示出来,如果是n−1进制就会有两个数是一样的,但是题目要求任意两数都不相同。理解了为什么是n进制后,就可以打出暴力代码。可以枚举每一个数分别是什么,用,再判断其正确性,如果每一个加法结果都正确,就输出结果,走人。如果判断到最后还没有找到,就输出ERROR!,由于3≤n≤9,所以可以将加法结果当成一个n进制数处理,但是还是用的int。原创 2024-01-28 10:43:39 · 407 阅读 · 0 评论 -
ABC338 A-E题解
可以将所有的边都赋予一个权值,对于每一个起点和终点,他的路径上所有的边的权值都加上另外一条较长路径比较短路径多的边数。,就代表右端点被某个区间包含,又因为是倒着处理,我们当前处理区间的左端点一定比相交的区间的左端点靠左,所以就代表我们找到了与当前区间相交的区间,输出。,所以我们可以枚举 A 菜品的个数,在判断冰箱里的配料是否足够,如果足够,在去判断最多能够制作多少个 B 菜品,然后寻找最大值就行了。而如果第一条边,第二条边被破坏了,我们就只能走更长的那一条边,就要多走一条边。,我们选择短一点的那一条边走。原创 2024-01-27 22:54:43 · 1255 阅读 · 1 评论 -
ABC335 A-E题解
贪心思想,优先选择比较小的点,对于每一个点能到的下一个点,我们将它们按他们的值从小到大排序,在加边时,对于起点的值大于终点的值的边,就没必要加了。,记录不同元素的个数,如果我要访问的点没有被访问,并且这个点比我当前所在的点要大或者相等,就继续搜下去。记忆化,记录下走到每一个点的答案值,如果往下走会更优,就继续走下去。循环即可,第一层枚举第一个元素,第二层枚举第二个元素,第三层枚举第三个元素,按次输出即可。的简单路径,使得路径中访问的数字是单调不递减的。最后输出,如果当前输出位置是矩阵中心,就输出。原创 2024-01-07 15:16:56 · 1010 阅读 · 1 评论