[10.23]CSP-S模拟赛

CSP-S前最后一场模拟赛,RP++

赛时

开 T1,努力搞懂题意。搞懂以后利用人类可以推导的部分打出来一个表。

打完以后没发现什么规律,于是尝试再往后推一个数字。利用电脑上的3D画图软件和疯狂的空间想象能力成功推出来一个 \(14\)

补到表上以后原来的猜想全断了,想了半天猜测会不会是数字推错了。重新推数字发现果然错了,应该是 \(15\)

推完以后的 5min 后小 L 来给了这组样例证明了我的推测(都不能早给点)。然后尝试列表格乱搞可以得到一个 DP 转移方程,\(dp_{i,j}=dp_{i,j-1}+dp_{i-1,j-1}\),复杂度 \(\mathcal{O}(nm)\),有 60pts。

转眼发现这个方程每一项的系数就是横过来的杨辉三角,再次推导,终于在将近两个小时的时候发现答案就是杨辉三角第 \(n\) 行前 \(m\) 个数字的和,即 \(ans=\sum_{i=0}^{m}C_{n}^{i}\)。复杂度为 \(\mathcal{O}(n+m)\),有 90pts。

赛时没有推出来最后的解法,其实只需要把赛时的组合计数的式子拆成 \(\sum_{i=0}^{m}\frac{n-i}{i}\) 就可以发现枚举量级是 \(\mathcal{O}(m)\) 的,可以通过本题。

开 T2,发现连暴力都很难写。想直接去想贪心/DP的正解,但是需要考虑一堆东西,所以决定先去写暴力。

枚举全集,要求强制满足,计算每次的贡献。题目条件给的很复杂,导致模拟也不简单,需要维护很多东西。来来回回将近 1h 终于把暴力写完了,但此时时间感觉不太够去想正解,所以仙姑了,去看 T3。

T3 感觉比 T2 简单,我设想了一种暴力思路,每次对于修改的点跑一遍最短路,记录字典序最小的最短路径并暴力修改,查询的时候直接输出。

想出来以后关键在于如何求字典序最小的最短路,这一点没有想出来,所以当时就直接把每个点连的边排序一波后正常跑,赛时感觉很对,赛后发现有 60pts,但这个思路其实是假的,数据过水,甚至把最短路放到外面以后暴力覆盖都可以通过。

T4 题面长的像博弈论,不会写暴力,所以没看,赛后发现根据样例可以推出来 \(f(i)=lowbit(i)\),然后这个性质可以得到 50pts。

赛后

排名竟然很靠前,我希望 rp 不守恒。(((

T2 的话大佬说是反悔贪心,题目条件可以保证贪心思路正确,如果没有休息时间的话是反悔贪心的板子题,加上以后可以通过重新定义代价的方法实现堆存储。听了以后感觉很对。

T3 的话赛后听了正规找字典序最小的最短路的方法,即每次都要保证 \(pre_x\) 最小,这样可以一直推到 \(1\) 节点,松弛的时候同时更新 \(pre_y\) 就可以得到正确的最短路。然后按照这种方法跑出来两棵最短路树,题目操作变为链修改和单点查,这个树上查分,树链剖分什么的怎么搞都行,有点缝合。

T4 正解说是什么拉插法,没听懂,老师说CSP-S过后再讲。

posted @ 2024-10-23 21:11  Redamancy_Lydic  阅读(25)  评论(0编辑  收藏  举报