2024集训模拟赛一补题报告

\hspace{1.5cm} 2024集训模拟赛一补题报告

\hspace{3cm} 2024.07.11 By 包包酱
\hspace{2.5cm} 预期得分:100+10+35+0=145

\hspace{2.5cm} 实际得分:100+25+30+0=155

\hspace{2.5cm} 补题得分:100+100+45+0=245

P.S.:怎么实际比预期还高,这数据也太水了吧……


比赛过程

全程主打的就是一个混乱。

首先云电脑差评。云电脑简直要卡死,上来先耽误了 15min。

开 T1,发现两个操作是可逆操作,于是考虑把两个数列都拆成不可再拆分的形式然后比较是否相同。但又觉得拆完了长度比较长可能会 T 掉于是想写部分分。但“想干上 100 p t s 100pts 100pts 就先 A 掉 T1”的精神让我决定想正解。最后终于发现正解,然后狂写(云电脑又死机了,然后果断不用云电脑了),写完 T1 已经过去 1h30min。

又看 T2,想着部分分,但 40 p t s 40pts 40pts 的发现前 30 p t s 30pts 30pts 想不出来,于是准备写 10 p t s 10pts 10pts,但想了想还是去开了 T3.

T3 看上去正解像 lca,简单证明了算法蒸雀(其实不对)后,一看九点了,我的天哪,我立马就慌了,20min 写 lca?!但想不了那么多了,直接干吧!出乎意料的是,10min 写完了 lca,结果测样例的时候发现算法有漏洞,经过多重分析发现我算法就是个渣,啥也干不了,但貌似 35 p t s 35pts 35pts 的还能抗住,于是就把代码留那了。

干完这些七七八八的事已经 9 点 20 了,又急急火火的回去写 T2 的 10 p t s 10pts 10pts,写完了正好 9 点半,检查一下 freopen 就交了。

array

状态:赛时AC
题意

给你一个长度为 n n n 的数列 a a a,一个长度为m的数列 b b b 和一个数字 k k k,你可以把某个 k k k 的倍数 x x x 分解成k个 x ÷ k x \div k x÷k,也可以把k个数x合成为1个 k ⋅ x k \cdot x kx

现在将a进行若干次这两类操作后,能否将 a a a 转化为 b b b

题解

我个人觉得我的解法比题解的解法思路要好想一些,所以在这里就讲我的做法。

首先发现拆分和合并操作是可逆操作,但由于我的脑子思维难度限制我只能考虑拆分(毕竟那样好想)。

我们把所有可以拆分的数都拆成不可再分的形式,但可能拆出来的数太多了,所以我们把连续相等时间位移差(物理学多了) 连续相等的数字给它们堆成一组,记录这一组的数的起始位置,终止位置,以及这堆数是几。

分组之后组数就少多了,两个数列都这么整,然后判断是否相等即可。(不得不说题解好麻烦啊)

P.S.:此题代码长 90 行,但后半部分是复制粘贴前半部分而得,所以特别鸣谢 Ctrl+C+V 键。第一题实际上思路蛮简单的,符合去年 CSP-S T1 难度,但由于多种因素我正解连想带写耗费了好长时间。

walk

状态:赛时 25 分,补题 AC
题意

现有一个长度为n的数列表示一只小狗每次移动的位移,但这 n n n 个数中有一部分数是 0 0 0

给定一个 [ − k , k ] [-k,k] [k,k] 的区间,现可将0替换为该区间内的任意一个数,要求替换后数列全部元素的和为 0 0 0 且小狗的足迹包含的长度最大。

题解

其实小狗向左向右跑是相对的。我们可以把整个序列看成环的形式,这样我们就可以放心大胆的一直让小狗向右跑了,而且,根据贪心原则,小狗向右跑就一定要跑 k k k 个单位。

但怎么跑都要有回头之路,小狗不能一去不复返吧。

这样我们就根据这个点之后的 0 0 0 的数量(即 c n t [ i ] − 1 cnt[i]-1 cnt[i]1 )来确定我们可以自由发挥的空间,如果这个点之后的 0 0 0 还能满足小狗浪完了还能回来,我们就让它向右跑 k k k 个单位,否则就该掉头了。

我们在读入时,先记录跑完已有的运动轨迹后小狗在哪个点,记为 s s s,求出这个点的运动轨迹后用它再更新s。

x = m i n ( k , k × ( c n t [ i ] − 1 ) − s ) \hspace{5.5cm} x=min(k,k \times (cnt [ i ] - 1) - s) x=min(k,k×(cnt[i]1)s)
最后,用以上所有的值来更新答案——足迹覆盖的最大值。

tower

状态:赛时30分,补题45分
题意

给定一棵树,树上每个节点都有一个高度 h h h,你可以在树上的某个节点花 a a a 个大洋建一个效率为 a a a 的塔。要求建完塔之后树上的每个节点都能通信。

该节点a能通信的充要条件为存在两个塔 x x x y y y a a a x x x y y y 的路径上,且 x x x y y y 的效率最小值 ≥ \ge a的高度。

题解

题解讲了些啥啊……咋没看懂捏……

当然放塔的地方一定是叶子节点这毋庸置疑。

大体是说,当你枚举到叶子节点时,你就把该叶子节点的塔的效率增加 1 1 1,其余所有节点的高度减少 1 1 1,直到所有叶子节点都删去。

我写的是 35pts 的解法,但数据太水了拿到了 45pts。

对于第二个数据范围,我们可以直接揪出所有的叶子节点然后都安上效率为 1 1 1 的塔。

对于第三个数据范围,我们可以把链的两端安上效率为整条链最高节点的高度的塔。

然后 45 分就到手了……

substr

状态:赛时0分,补题0分
题意

给一个长度为 n n n 的字符串,可以进行 k k k 次操作,每次操作可以删去长度为 2 k − 1 2^{k-1} 2k1 的子串。

删完了之后字符串的字典序要最小,求最小字典序的字符串。

题解

题解整一个看不懂……

好像是二进制下的 dp (?) 记录最优答案。

定义 d p i , m dp_{i,m} dpi,m 为前 i i i 个字符中,删掉二进制为m的字符串所得的最小答案。

对此进行 b o o l bool bool 最优解优化。

算了,有些正解不是我该碰的……

总结

1.在S组 T1 变简单的趋势下,应该着重考虑 T1 的正解,结合数据仔细观察,算好复杂度!!!
2. T3~T4 主要看部分分,T3T4 的正解现在还写不了,不要盲目自信花时间写正解,这样只会浪费时间况且性价比巨低。T2 的正解或许可以尝试的。
3.题目非常考数学,对于思维的灵活性要求非常高,必须学会等效转化题意,把难题变简单。
4.能写的部分分一定写,可能5分都决定命运(必须吸取 CSP-S 2023 135pts 的惨痛教训),写了部分分,可能实际得分会比预期要高呢(万一数据水或者不可以总司令呢)

P.S. 四大差评:云电脑差评,数据差评,题解差评,题解视频差评
如果还有 20min 可能效果更佳……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值