2021牛客OI赛前集训营-普及组(第一场)题解

第一题 优美的数

出题过程

Venn: 第一题怎么出
BLUESKY007:不如搞个矩阵加速的数位dp吧。
Venn:?(数据范围砍成log级别)

考察知识点

枚举,预处理

做法

由于给了样例

我们可以对优美的数进行预处理,得到前个优美的数。然后读入并输出答案即可。
总时间复杂度
std:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48896072

第二题 异或序列

出题过程

Venn:第二题搞个二分吧。
BLUESKY007:我更喜欢位运算,也是log的。
Venn:那就二分+位运算。

考察知识点

位运算,二分, 哈希

做法

对于前50%的点,我们考虑使用一个 的二重循环,枚举所有的数对,判断是否为答案。

对于接下来25%的数据,我们考虑 等价于 .那么对于每一个 都有一个固定的数.我们用记录数字的出现次数,即可统计答案。时间复杂度.
Tips : 此做法可以借助std::map 扩展到100%的情况,但是要取决于常数问题(由于常数问题,导致某不愿透露姓名的出题人挂了3个点)。

对于全部的数据,考虑排序数组后,每一个对应的都是一个连续的区间。我们二分出左右端点,即可在的时间内统计答案。

std: https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48896051

第三题 分!身!术!

出题过程

Venn:整点高难度的,来个NOI题
BLUESKY007:差不多得了😓 给你题目名一样就行了

知识点

单调队列, two-pointer

做法

对于30%的数据,我们考虑枚举所有的区间,然后分别统计两人做题时间,判断是否可行,时间复杂度
对于60%数据,我们在枚举区间的同时,使用ST表统计两人的做题时间,判断合法性。时间复杂度
对于的数据,我们可以用"Two-Pointer"做法,用set数据结构,维护当前区间答案,并且可以在的时间进行转移,总复杂度达到了
对于100%的数据,使用two-pointer在移动区间右端点时,使用单调队列,对分别维护最大值,最小值。当差值超过时,记录答案,并移动区间左端点位置。时间复杂度

std https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48896050

第四题 种树

出题过程

Venn:我们好像没有出dp题啊
BLUESKY007:确实,也没有出图论
Venn:缝合起来

知识点

树形dp, 换根dp

做法

对于45%的数据,枚举受力点进行的计算即可。

对于100%的数据:
首先,假设受力点为并计算此时的做功,时间复杂度

然后,我们考虑将受力点从转移到之间有连边),可以得到对于的子树中的所有点将减小,对于的子树以外的所有点将增加。由此可知,。在预处理所有点的子树重量和的情况下,可以在时间复杂度内由得到

总时间复杂度

赛场总结

本场题目难度适中,考察知识点全面,给出题人点赞
中间看到有一位选手AK,但是又交了一发错误的C导致被卡到320,不过最后一分钟又交了正确的代码,成为AK人。
C题为了放过1e7数据量的读入,时间开到了2s,导致部分80分的做法加上快读通过了。
std https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48896053

全部评论
B题卡map差评,赛后被教练组题选手表示如果不卡map就300+了
点赞 回复 分享
发布于 2021-10-05 18:03
给出题人点赞,不过单调队列是不是超纲了啊
点赞 回复 分享
发布于 2021-10-05 09:22

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结: 27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
03-29 18:59
运城学院 Java
程序员小白条:咱们要对自己的简历和学历有清晰的认知,不要动不动就大厂了....都26届了,没实习还想着大厂,唉
点赞 评论 收藏
分享
评论
8
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务