[DMY]2024 CSP-S 模拟赛 Day 11
感觉这场打得不错。
T1 如果再好好想想就能跑到 31rk 了。
赛前
今天机房人比较少,HDS 和一些高二学长都不在。
赛时
浏览一遍四道题,感觉都不太可做。
T1
先开 T1,在纸上模拟了一下,发现暴力建图的话最后的边数会非常大。
先模拟一遍,交上去发现 WA 了一个点。
由于题目中提到了“允许重边”,所以在所有的建图部分都是用了几个桶排除情况,但是一直不过。各种调试之后,终于在 1.2h 的时候写完了暴力。
开始思考正解,发现想要降低复杂度的话最可行的是找规律优化建边方法。
结合题目要求,最小生成树的话我们只需要针对两个节点保证连通的情况下边权和最小。
根据定义,暴力情况下在做最小生成树的话对于一个度数很大的点一定是一片一片扫过其的边的,那么也许能对这种节点的建边方式进行优化。
但是想了一会并没有什么好的方法,胡了几个比如按顺序连边也不太多。
看了看别人的提交记录,发现没多少人过,所以猜测正解很难,就先跳了。
T2
看了眼 T2,感觉限制条件比较多,现在纸上画了画,发现
我对
设定
最后一个元素因为需要由两个
找到以后根据一次函数类中一次项系数(1或-1)的正负性分一下情况,第一种符号相同的方式直接判断,第二种符号不同的方式可以解一下方程,解是整数的话说明满足构造条件。
最开始写挂了(意料之中),发现按照
想了一会以后搞了个随机化上去,每次重新排列
但是问题在于随机化以后还原数据不太会(出题人真的不能多测+只输出 Yes
No
么),整整 2h 我都在搞排序使用的 id
数组,上个厕所回来发现我
发现如果复杂度是
观察组合规律,想用反 id
数组或者 pair
型的数组实现有序,但最后都失败了。
无奈开了几个 map
存储原数组每个元素,然后每次桶套桶去搞,终于把每次的复杂度逼到了
搞到 11 点终于过掉了大样例。
感觉不太确定,卡了卡随机次数,觉得差不多以后就扔了。
看了看其他人,发现只有我 T2 此时是过掉的,感觉很有优势(我在想什么)
所以转头发现 T1 过了一车了。
赛后发现 70 分,改了次数以后也没卡过去。不过分比ANIG高
后面的题目,T3 胡了个暴力就扔了。
T4 最后 10min 想+写了一个 DP,只过了小样例,最后一分也没有,不过在意料之中。
赛后
T1 发现过了一车。按照同学的方法改了以后直接 A 掉,这个很好想,之前一场 ABC 的 F 题也有类似的建图套路,但是没想出来,导致挂了 80pts,亏大了。
T2 发现自己乱搞的做法分数还可以,但是低于赛时期望,尤其是当我发现找到以后得输出只有一次,所以我花 2h 逼到的
总体来说比前几场好一点。我猜是因为CM不在
这两场比前几场都好一点,应该是熟悉了题目套路和适应了比赛规则的缘故。
遗憾的是这两次的 T1 思路都是只差一点,导致挂了很多分。
以后需要加强写代码时对复杂度的判断和思路简洁化的能力。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】