[DMY]2024 CSP-S 模拟赛 Day 10
赛时
T1
对于 T1,看懂题面以后感觉很可做。
首先明确正解复杂度应该是基于
把输入按照开始时间排序,然后依次处理。
赛时考虑到一个元素在覆盖过程中遇到其他元素时无法确定时间先后,确定后想要找到该元素的当前位置和重新覆盖有些困难,写了 1h 以后先放弃了。
舍远求近,基于时间写了一个
时间还剩下 1h 的时候,看别人都过掉了 T1,便回去改。
想到了一个利用优先队列并基于时间节点的方法(其实就是正解,但是实现要复杂得多,赛后发现完整写完需要 170 多行),代码很长,用 30min 写了一个将近 200 行的代码,剩下的时间都在查错,结果到最后也没有调出来。
T2
T2 的话可以根据每个
想了一会发现并不是太会低复杂度做法,先去看后面的题。
T4
T3 和 T4 一开始的时候都不太会暴力做法,这时候我面临去改 T1 还是继续拿暴力分的选择。
上个厕所回来会了 T4 的暴力做法,可以每次直接连边,然后做一遍 Floyd,在里面查找最值后再做一次查找满足条件的点。
T3
T3 的话我用结构体存储一个队列表示两个学校的情况,每次对于不合法的情况进行拓展,合法的累加答案。
为了在遍历的时候复杂度低于 set
,赛后发现 T 了导致爆蛋。
赛时有点急躁了,并没有细想 vector
该如何优化复杂度,使用 set
会占用大量的空间和时间。
赛后
班里的分数差距主要在于 T1。
如果当时没有去写暴力分并且 A 掉 T1 的话,我将以 110 分的成绩挤进首页。
但是 T3 暴力写挂了,T1 只拿了 50 分。
想想看来 T1 其实很简单,赛时没有考虑到按照时间排序以后其实可以直接大胆覆盖,不会出现占用状况。
正解其实很短,可以做一个多源 bfs 最短路,只需要用优先队列稍微维护一下,然后正常按照时间模拟即可。
T3 的话主要是 set
浪费了时间,赛时其实使用 vector
的话也可以做到低于
打的不太好,差距主要还是在 T1。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探