2024.10.22模拟赛反思
怎么感觉题目越简单打的越差啊?
没什么好说的, 分钟就做完了。
主要问题主要就是在 上。其实本来 就想到贪心怎么做了,但是发现直接贪心有点问题,所以就一直在想怎么解决。可能是前几场比赛考的比较难的缘故,我就一直在想能不能用数据结构进行维护,或者使用一些神奇方法规避这种问题,但是一直没想出来,最后只好打了一个暴力走人。其实正解就只需要在我的做法上加一个步骤,就是如果线段 包含线段 ,那就把线段 删去,最后就是一个普及组贪心。其实本质上还是想复杂了,而正解根本没有那么难。
后面两道题还算比较正常,该拿到的分都拿到了。 当 时考虑容斥,先把中间元素互不相同的方案数求出来,然后再减去首尾相同但中间不同的方案数,其实可以直接把首尾集合合并起来,然后当做子问题去处理,这样时间复杂度就是 的。当 时,此时最小的集合元素数量不超过 的,这样只需要枚举第一个集合选了哪个数,然后再进行 ,最后尾部不选和首部相同的元素即可,这样单次时间复杂度 ,总时间复杂度 ,可以通过。其实赛上想过容斥的,但是想的是另一种,导致就做不出来。
拿了 和 的 分,本来想写 分的树套树的,但是写的时候只剩 了,遂放弃。正解是考虑把序列按照长度 分块,每块处理一个前缀李超树和后缀李超树,然后询问的时候最多查询两个区间,前面的区间是后缀,后面的区间是前缀,这样就可以 的时空通过了。
其实这场比赛主要就是反映了一个非常大的问题:
- 当一道题需要一些思考,但不需要太多时,由于难题做多的缘故,我可能就会绕进复杂的方法里面出不来,最后只好打暴力。但是事实上可能正解非常简单,在我的部分思考基础上再加一点点就能做出来。这应该是为什么我经常在简单场次爆炸的原因。其实像后面的两道题到是拿分拿的还行。
这个问题可能也比较好解决,就是当用比较高级的东西去做一道题做了很久都无果时,可以考虑往简单一点想,就比如这次 有影响的区间我直接给他删了就行,这样应该可以避免在简单题上丢分。 应该会比平常考试简单一点,希望在 时简单的题不要想的过于复杂,不然可能就会像今天一样把简单题的分丢了,到时候虽然有可能一等,但估计也是踩线,甚至都无法参加后续的活动。所以这个问题还是比较严重的,一定要规避。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】