CF1834
CF1834
Virtual Contest 做了 5 道题,非常不错。
A.Unit Array
秒切题,判断个数,然后判断一下奇偶即可。
提交:https://codeforces.com/contest/1834/submission/211190220
B.Maximum Strength
题目描述
每一种材料的力量由一个十进制整数表示。
对于一个武器,由两种材料构成。假如第一种材料的力量为 ,第二种材料的力量为 ,那么这个武器的力量为 ,也就是 。
如果两个数字长度不一样,则要将短的数字用前导零补成相同长度。
现在,你拥有无数个力量在 中的材料。你想要选出两个材料做出一个力量最大的武器。请你求出你设计出的武器力量的最大值。
题解
找到第一个不同的地方,其他地方全部填 即可。
大数填 0,小数填 9,这样一定满足在区间内。
提交:Submission #211191108 - Codeforces
C.Game with Reversing
题目描述
你有两个长度为 的序列 。
你将不断重复以下步骤直到两个序列相等:
-
在 或者 中任意选择一个数字,然后修改为另一个数字。如果此时序列相等,则结束操作,否则进入操作 2。
-
任意反转一个序列。如果此时序列相等,则结束操作,否则重复操作 1。
注意:操作 1 和操作 2 都计入操作次数中。
你需要输出最小化的操作次数。
解题
正序和逆序分别讨论一下,取 即可。
设 表示正序不同的个数, 表示逆序不同的个数。
那么 。
提交:https://codeforces.com/contest/1834/submission/211198802
D.Survey in Class
对于每一个学生的学习集合,答案是 。
考虑使用树状数组维护线段,从左向右扫一遍。
考虑两条线段的关系,三种:
-
左边
-
相交
-
右边
对于每一个 ,我们需要最小化 ,所以对于三种情况,我们维护三个线段:
-
右端点最左
-
最短
-
左端点最右
分别判断即可。
提交:Submission #211192375 - Codeforces
E.MEX of LCM
我考场上的做法
考虑只有 个取值,那么 一定 。所以我们限制了答案的上界,设为 。
实际上有更紧的上界,根据:CF1834E MEX of LCM 题解 - LCTTTTTTTTTTT - 洛谷博客, 可以 。
考虑对于一个固定的右端点,其左端点与其匹配的 是单调的,并且不同的数量在 。
考虑每一次变化 至少 。
所以考虑用一个 set
维护。
同时,再用一个 set
维护所有出现过的 lcm
(考虑是 个,空间没问题)
所以总复杂度为 。
提交:Submission #211194246 - Codeforces
还有的思路
考虑每一个左端点,可以二分找 lcm 的分界,当值大于上界的时候退出。
用桶或者什么东西操作一下即可。
复杂度为 。
然而还有玄学优化,参考:出错了 - 洛谷
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App