- 博客(12)
- 收藏
- 关注
原创 AT_abc402_c 题解
首先可以注意到,每道菜能吃的时间,只跟其中在数组B中出现过的配菜能吃的时间相关,也就是这道菜之中最晚能吃那个配菜的时间。知道题几乎已经解决了。首先将B中的配菜开个桶记下来,跑每个菜的每道配菜从而可以知道这道菜能吃的时间。注意到每道菜能吃的时间是具有单调性的。也就是如果这道菜t秒能吃,那么t1秒也能吃。所以将每道菜的最早可吃时间排序一下,每走到一个新的时间点加上其对应的菜的数目就做完啦!
2025-04-19 23:28:35
217
原创 AT_abc402_d 题解
首先可以发现转化,答案也就等于每个i与j的组合再减去平行的个数。即2n×n−1减去两条线相平行的个数。接下来我们需要考虑如何去求这个东西。通过对样例解释的观察与一些手玩,可以发现aibi与aikbi−k是平行的。k是指一个能使上式大于 0 小于等于n的整数,可正可负。注意k不等于 0。这就结束了吗?并没有。例如,如果aik是大于n的,这并不代表它不成立。在一个环上,物极必反(感性理解一下)。到n后会跳到 1。所以ai。
2025-04-19 23:27:35
505
1
原创 AT_abc401_e 题解
看到好多大佬都用了并查集来做,小蒟蒻膜拜,只能给出一个奇奇怪怪的做法。考虑递增枚举k正向加点,可以发现如果这张图满足要求,第k个点的来源必定小于k。所以可以在每次加点的时候把与它相连接的点记下来。如果第k个点没有被记下来,则说明无法完成,输出 -1。否则,还需要查看是否 1 到k全能被到达。可以发现之前没被收录的那些点只能通过点k进行拓展。所以,从k跑 dfs。注意,大于k的点不跑。最后查看是否所有点都被收录了。答案就是被收录点集的大小减去k。
2025-04-12 22:34:57
390
1
原创 题解:CF2065F Skibidus and Slay
所以可以考虑给每一个点开一个 map,记录它能连的点的点权,这样对于每个点,只需要搜它的出边,接着看那个点是否连过一个与当前点相同点权的点就做完了。其实对于每个点只用往下跑三步。小蒟蒻太菜,只能给一个感性证明:若当前点是在三步以后才符合了答案,那么从第三个步开始跑也一定能成功。但是如果还是 dfs 的话,即使用了上述的剪枝,菊花图的复杂度仍是不下来的。首先能想到一个暴力搜,对每一个点都跑一遍全图,但复杂度肯定是不允许的。
2025-02-12 11:06:16
206
原创 题解:CF2065G Skibidus and Capping
1.半质数只有 2 种拆分方式,即为 1 * 它自己,中较小的为 1,接下来,假设较大的为。发动我们惊人的注意力可以注意到,需要。都是质数,根据性质 2,反推。看似结束了,实则还有一种。
2025-02-12 10:40:08
841
原创 题解:CF2065E Skibidus and Rizz
能发现,形如 1010…1010 这样的串,左右两侧的 01 交替串对中间并没有贡献。个 0 先连续放在左右两侧,接着,从两侧开始隔一位交换一对 0 和 1 ,直到中间的连续 1 和 0 有一个等于。个,且它的所有子串中, 0 与 1 的差最大的恰好为。还有一些细节稍微处理一下就 A 啦!的 01 串,其中 0 有。
2025-02-11 10:09:46
959
原创 csp-j模拟测验(三)-T3 (LaTeX 版)
给定一个序列a1a2a3......an。初始时集合中只有一个元素ai, 并有两个指针lri。1.将l−1, 然后检查集合中是否已有al。如果有,那么立即结束,否则往集合中插入al。2.将r1, 然后检查集合中是否已有ar。如果有,那么立即结束,否则往集合中插入ar。fi的值为能够结束的最小操作次数。你需要对于所有1≤i≤n,求出fi,并保证有解。
2024-10-20 16:42:48
1563
1
原创 csp-j模拟测验(三)-T3
可以继续利用 $l$ 数组,将所有 $a_i = a_j$ ( $i$ 最大)维护到一群 pair 中,$j$ 自然成升序。再记数组 $rans$ 与 $lans$ ,其中第 $i$ 位表示从第 $i$ 位出发,只考虑向 左 $/$ 右 的答案。记数组 $r$ 与 $l$ ,其中第 $i$ 位表示 左 $/$ 右 第一个与原数组第 $i$ 位相同的位置。这时 $r$ 与 $l$ 就可以直接求了。给定一个序列 $a_1$ , $a_2$ , $a_3$ $......$ , $a_n$。
2024-10-12 21:43:10
700
3
原创 题解:P11138 [APC001] C - Not APC
给定一个由 A , P , C 组成的序列,需要从中删除尽可能多的形如 APC 这样的子序列。
2024-10-12 21:41:24
298
1
原创 题解:CF883K Road Widening
然后扫 s2s2 数组,因为题目规定相邻两部分的道路段度之差不大于一,且要求最宽,所以 s2i=min(si+gi,min(s2(i+1)+1,s2(i−1)+1))s2i=min(si+gi,min(s2(i+1)+1,s2(i−1)+1))。解释:如果你深入思考了,就可以发现,在正着扫的时候,如果右边的道宽
2024-10-12 21:22:34
563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅