「比赛题解」Codeforces Round #690 (Div. 3) 简要题解

「比赛题解」Codeforces Round #690 (Div. 3) 简要题解

A

直接倒推回去即可,左边右边依次向中间扫,依次扫到的就是原序列。

Code

用时:3min

B

看最前面能连"2020"的前面多少,最后面能连"2020"的后边多少,如果相加大于4即为答案。

Code

用时:4min

C

最优操作为从9到1依次使用。模拟即可。

Code

用时:3min

D

答案实际上是求划分成若干段,这些段的和都一一相等,且分段最多。

那么他们最后那一位的前缀和一定是个等差数列,枚举第一段的最后一位即可。

时间复杂度 O(n2)

反思:没有一眼秒掉,而是先去想 O(n3) 的区间dp,存在一定程度上的思维定式。

Code

用时:6min

E1

枚举 ai(aj,ak) 只有几种可能的取值,记录每个取值有多少个数,大力分类讨论全部方案算在一起,最后总和除以3即可。

Code

反思:简单组合数学计算上存在严重的漏洞,分类讨论能力不够强,统计答案有处没有开ll用了7min才发现。

用时:36min

E2

对于一个 ai 当最大值来说,只有值在 [max(0,aik),ai] 之间的数才会和它组成答案,算组合数统计。

开值出现次数的前缀和记录即可,为了防止重复还需要每算一遍前把前缀和中包含这个数的都减掉这个数出现的次数,但是这个修改是单调的,直接扫就可以了。

Code

用时:赛后补题

F

首先离散化一下,线段的值域变为 [1,2n]

对于一条线段 i 来说,考虑它作为和全部线段有交的那个线段来更新答案。

那么统计有多少线段和它不相交即可,只有在它左边或在它右边,那么就相当于对于每个 i 查询一下有多少 j 满足 rj<lilj>ri

两种询问分别离线下来扫一遍即可。

Code

反思:一眼秒了没敢写,复制粘贴忘改小地方WA了一次。

用时:赛后补题

posted @   do_while_true  阅读(111)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

This blog has running: 1845 days 1 hours 34 minutes 5 seconds

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