04 2024 档案

摘要:ABC240 复盘 [ABC240C] Jumping Takahashi 思路解析 显而易见,求是否可能,用可能性 dp 即可。 code #include<bits/stdc++.h> using namespace std; const int N = 1e2 + 10, M = 1e4 + 阅读全文
posted @ 2024-04-18 18:58 2020luke 阅读(26) 评论(0) 推荐(0) 编辑
摘要:[ABC240E] Ranges on Tree 题解 思路解析 由题意可知,只要一个点的所有儿子节点都被确定了,那么当前节点也就被确定了。也就是说,只要确定了所有叶子节点,也就能一层层地确定所有节点,而叶子节点没有儿子节点不受此条件的约束,同时我们希望 \(\max\limits^N_{i=1}R 阅读全文
posted @ 2024-04-18 18:57 2020luke 阅读(9) 评论(0) 推荐(0) 编辑
摘要:ABC191 复盘 [ABC191C] Digital Graffiti 思路解析 求不规则图形的边数,根据题目可知多边形的内角只有 90270,所以只需要从四个方向扫描一遍,求出每个方向上分别有几条边即可。 code #include<bits/std 阅读全文
posted @ 2024-04-18 11:03 2020luke 阅读(42) 评论(0) 推荐(0) 编辑
摘要:ABC229 复盘 [ABC229C] Cheese 思路解析 题目已经告诉了你每克比萨能带来的美味度,因此直接以每克的美味度为关键字贪心即可。 时间复杂度:一次排序,O(nlogn)。 code #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2024-04-17 21:00 2020luke 阅读(26) 评论(0) 推荐(0) 编辑
摘要:[ABC229E] Graph Destruction 题解 思路解析 题目要求删点,而众所周知删点的代价要大于加点的代价,于是我们考虑倒着处理询问,将每一个删点改成加点,而加点时就用并查集维护连通块即可。 code #include<bits/stdc++.h> using namespace s 阅读全文
posted @ 2024-04-17 20:43 2020luke 阅读(20) 评论(0) 推荐(0) 编辑
摘要:ABC212 复盘 [ABC212C] Min Difference 思路解析 与 ai 差值最小的某个 bj 要么是第一个大于它的值,要么是第一个小于它的值,而这两个值都可以用二分求得,于是我们直接将 b 数组排序,然后对于每一个 ai 都用二分找到上文提到的 阅读全文
posted @ 2024-04-17 20:15 2020luke 阅读(31) 评论(0) 推荐(0) 编辑
摘要:[ABC212E] Safety Journey 题解 思路解析 首先根据题目的条件我们可以想到 dp,用 fi,j 表示走了 i 步,现在在 j 的方案数,可见转移即是 fi,ufi1,v,这里的 v 表示每个与 阅读全文
posted @ 2024-04-17 20:12 2020luke 阅读(14) 评论(0) 推荐(0) 编辑
摘要:[ABC208D] Shortest Path Queries 2 题解 思路解析 此题的本质其实就是 Floyd。我们在进行 Floyd 时会有一个 k 充当中间点,可见这里的 k 就等于题目当中的 k,因为小于等于 k 的所有点都被当作过中间点转移过,而大于 \( 阅读全文
posted @ 2024-04-17 18:36 2020luke 阅读(15) 评论(0) 推荐(0) 编辑
摘要:ABC211 复盘 [ABC211C] chokudai 思路解析 题目说的很明白,看到匹配子序列可以轻易想到是简单 dp,直接做即可。 时间复杂度:两个字符串两层循环,O(8×N)。 code #include<bits/stdc++.h> using namespace s 阅读全文
posted @ 2024-04-17 18:24 2020luke 阅读(30) 评论(0) 推荐(0) 编辑
摘要:CF154C Double Profiles 题解 思路解析 题目说的很明白,求有多少个无序点对 (i,j),使得与 i 直接相连的点集与直接与 j 相连的点集完全相等。我们想到如果直接判断每个 i,j 肯定会超时,所以我们想把每一个与任意一点直接相连的点集进行压缩, 阅读全文
posted @ 2024-04-16 16:48 2020luke 阅读(9) 评论(0) 推荐(0) 编辑
摘要:ABC223 复盘 [ABC223C] Doukasen 思路解析 根据题目可知,燃烧的总时长肯定不变,所以我们可以直接从头开始遍历找到第一根香使得烧完这根香后的时间会大于总时长的一半,然后加上剩余时间下会烧掉的长度即可。 时间复杂度:一次遍历,O(N)。 code #include<bit 阅读全文
posted @ 2024-04-04 13:31 2020luke 阅读(43) 评论(0) 推荐(0) 编辑
摘要:[ABC223F] Parenthesis Checking 题解 思路解析 在开始之前,首先我们需要知道合法括号序列的判断方法。我们可以给每个括号打上权值,设左括号权值为 1,右括号权值为 1,这样一个 (()()) 括号串用数字存下就是 \(1,1,- 阅读全文
posted @ 2024-04-04 13:16 2020luke 阅读(11) 评论(0) 推荐(0) 编辑
摘要:[ABC211F] Rectilinear Polygons 题解 思路什么的上一篇题解已经写的非常明白了,这里只是提供一个补充 & 另一个实现的方法。 思路解析 先说结论:扫描线。顾名思义,扫描线的本质就是用一条线沿着 xy 轴扫过去,每碰到一条边就记录一下加边后是面积是增加 阅读全文
posted @ 2024-04-04 10:43 2020luke 阅读(13) 评论(0) 推荐(0) 编辑
摘要:[ABC211D] Number of Shortest paths 题解 思路解析 题目其实说得很明白了,就是最短路计数。我们可以用一个 si 表示从起点到 i 的最短路计数,然后进行 bfs,由于边权为 1,所以可以使用 bfs 求最短路。如果 uv 阅读全文
posted @ 2024-04-04 10:43 2020luke 阅读(8) 评论(0) 推荐(0) 编辑
摘要:ABC221 复盘 [ABC221A] Seismic magnitude scales 思路解析 数据范围 BA10,可以发现能直接暴力求解。注意开 long long。 code //ABC221A #include<bits/stdc++.h> using name 阅读全文
posted @ 2024-04-04 10:42 2020luke 阅读(40) 评论(0) 推荐(0) 编辑
摘要:[ABC223E] Placing Rectangles 题解 思路解析 根据题目可知,其实三个长方形无非只有以下两种摆放方式。 若大长方形长为 y,宽为 x,则我们对于第一种情况就固定住宽,判断能否使长度小于等于长;对于第二种情况同样固定住宽,此时 A 长方形右边空间的长就确定了, 阅读全文
posted @ 2024-04-04 10:42 2020luke 阅读(9) 评论(0) 推荐(0) 编辑
摘要:[ABC221E] LEQ 题解 思路解析 很有思维量的一道题。首先根据题目要求发现,新求的子序列只跟子序列的头尾有关,而在确定头尾之后中间的元素选或不选没有任何关系。也就是确定新子序列的头尾下标分别为 i,j,那么以当前头尾的可行子序列个数就是 \(2^{j-i-1}=2^j \div 2 阅读全文
posted @ 2024-04-04 10:42 2020luke 阅读(9) 评论(0) 推荐(0) 编辑
摘要:[ABC221D] Online games 题解 思路解析 可以发现题目就是单纯区间加和查询每一个值有多少次出现。首先看到区间修改加结束时查询可以想到差分,但是通过 Ai109 发现值域很大没法直接根据值差分。于是想到离散化,将每个点离散下来,统计每两个离散的时间之间在线的人 阅读全文
posted @ 2024-04-04 10:41 2020luke 阅读(13) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示