代码源CSP-S模拟赛Day7-9赛后总结
代码源CSP-S模拟赛Day7-9赛后总结
Day7
赛时
先扫一遍题,T1 显然数位 dp# 代码源CSP-S模拟赛Day7-9赛后总结
Day7
赛时
先扫一遍题,T1 显然数位 dp,感觉放在T1应该不难,而且题面有一种很亲切的感觉,感觉很可做。T2 简单思考一下发现最终合成的数就是
T1 一眼数位dp,首先 n 个数或起来的值等于和显然各个位置上有且只有一个数是 1。于是就先码了一个 55 分的 dp,原因是忘了数位 dp 的状态设置是什么了,我好像记得没有开过数位 dp 的专题。
T2 想到给这些数添加正负号之后 15分暴力分就直接出来了。但我没有想到怎么确定最后的正负号到底怎样才最优。感觉合法的方案数肯定不唯一,想到了
T3简单想一下,发现只会暴力,但看时间发现已经十点多了,我还计划着给T4多留时间呢,暴力都没码就撤了。
T4码dfs序和线段树的时候由于函数与Sub1的函数重名,害我de了十几分钟。然后想了一下不大众的挡,之前感觉能拿40 ,发现有一个超了,但也还多了十分。
T2,T3暴力都没码,我速速的30分钟码了2道题的暴力,此时11:57。沾沾自喜,以为稳了,这时我迅速提交T2,发现edge炸了……慌乱之下问了雪月花果断切谷歌,结果提交T2的时候由于太急多点了几下,直接给我提示15s后再提交,此时北京时间11:59分,省去中间焦急的等待过程,最后一分钟极限交上两道题,并且成功选择了C语言(由于之前没有用谷歌登过代码源),于是两题爆蛋。
最后40分钟心态爆炸了,犯了许多很糖的错误,如果我稳一点,至少BC的暴力分能拿。以及以后不要再像当时一样T2T3暴力都不码,直接去做数据结构了。
赛后
T1 大概是一个很典的数位dp,如果你状态设置对的话,A 掉还是比较容易的,并且正解的状态也是很经典的状态设置,
T2 想到
T3 是在生成树上大胆贪心,基本懂了,T4 是跑 bfs 序,存下每个点第 i 层的区间解决邻域的修改查询,子树修改查询怎么处理呢?感觉不是很会啊。
T1 T2 已订,T3 T4 待订。
Day8
赛时
T1 读完题后忘记了数据范围,以为 n 是一个 2e5 级别的,于是以为这是什么神秘贪心,神秘性质题,在草稿纸上手玩了30分钟式子,有了一个初步的dp想法,但是复杂度很高,于是码了个暴力就撤退了。
T2 首先随便搞了一个较复杂的 n^3 做法,枚举 i,枚举 k,再枚举
T3 一看数据范围,以为是什么神奇且逆天的贪心,再加之这时 whrdalao以及 xueyuehuadalao貌似(好像)都过了 T1,于是迅速跳了 T4 ,码了个暴力,回头看T1了。
觉得T1 没准诈骗,回头看了眼,好家伙,n<=100……,于是开始考虑了一下 dp 的细节。首先这个dp我们得从后往前d,原因是你从前往后d是有后效性 的,你不知道你后面到底打多少次,无法统计贡献,所以 初步设置状态是 $f_{i,j}表示考虑从 n 到 i ,你总共加了 j 的伤害的最大总伤害。发现对于 2 操作是无法转移的。纸上手玩一下发现这玩意儿转移还需要一个攻击回合下标和,于是状态就是这三个东西,差不多是 1e8 级别的,转移显然。A的时候差不多比赛也接近了尾声。最后20分钟都在调T2 ,不出意外
赛后
T2 首先题解
T3 竟然就分讨+模拟,赛时尊嘟被吓到了。
T4 不是很懂,而且讲得时候还有什么and卷积什么的,畏惧了。
T1 T3 已A,T2 T4待订。
Day9
赛时
T1首先想到了最终的糖果数一定是一个定值,为所有糖果 &
起来的值。然后直接就用这个东西码了个你
T2好像做过原,也忘了什么时候的事了,由于1个小时还没有 AT1,心态有点炸,当时不敢细想T2 ,知道T2 码量大,直接考虑暴力了,但是考虑我想了个暴力写完调完发现T了,仔细思考后发现我对于多个乘法用了乘法分配率,将n个数分别与3相乘再乘一块变成了n个数乘一块然后乘3……,暴力码炸了心态更崩了。
当时想稳住心态,决定无论怎样T1 必须A,不然后面的题肯定做不好。果断回去。仔细思考了一下,我们可以把原序列分成若干段,这几个段满足段内异或和为整个序列的异或和,发现最优的情况下就是每个段的长度减一再相加。接下来是怎么划分的问题,不妨假设只要当前异或和正确了,就开新的一段,这样做一定是优的,因为你考虑我把后面的那个数划给这一段的话除非后面的所有数都构不成一个正确的异或和,否则的话我这个数往哪个段上合并均可。如果后面的数都合不成正确的异或和的话他们所有的数肯定都要往这个段合并,我们直接特判掉就行了。于是做完了。
T3 一开始理解错题意了,我还疑惑你直接给 n 不就行了,给我序列干啥。大力推到了一波式子,用组合数公式胡搞了几分钟,发现可以 O(n)求,我心想,就这么简单???于是果断开码,然后直接过样例了,交上去后面的都Wa 了。感觉式子很对,但不知道为啥,打表输出了发现程序完美的执行了我的思路,此时剩30分钟,T3T4暴力没码,于是跳 T4 码了暴力回来,在最后15分钟的时候读懂题意了,速速码了个若只暴力,然后又想了个25分的,速速码了一下,成功在比赛结束后第 0.0001s 完成。
这场打炸了,签到做太久,而且T3理解错题意了,直接把dp题整成数学题了,前面太急了,后面太糖了
赛后
T2 是贪心,
T3 是简单dp,没啥好说的,都怪我太糖了。
T4 是图论好题,离线的部分听懂了,在线的k=1听懂了,k>1的倍增没搞清楚,待订,T1T2T3都订了。
感觉这场的问题就是心态和时间分配,其实T3比T1简单,但我没时间做了。
简单总结
这几场打下来主要还是时间分配和心态的问题,T1实际上是可做的,但一时的思维短路可能会影响到整场比赛的心态。这种情况下我们要迅速 码完后面的暴力,再回来磕,不能恋战。
明确哪些题是可做的,比如今天的T3 ,虽然放在T3的位置,但就是一个很典的dp,没有分配给其足够时间导致爆蛋。
有一些题我们不能仅凭感觉,题面去判断它,要经过深入的思考,不能想当然,这样往往导致错误的时间分配,感觉放在T1应该不难,而且题面有一种很亲切的感觉,感觉很可做。T2 简单思考一下发现最终合成的数就是
T1 一眼数位dp,首先 n 个数或起来的值等于和显然各个位置上有且只有一个数是 1。于是就先码了一个 55 分的 dp,原因是忘了数位 dp 的状态设置是什么了,我好像记得没有开过数位 dp 的专题。
T2 想到给这些数添加正负号之后 15分暴力分就直接出来了。但我没有想到怎么确定最后的正负号到底怎样才最优。感觉合法的方案数肯定不唯一,想到了
T3简单想一下,发现只会暴力,但看时间发现已经十点多了,我还计划着给T4多留时间呢,暴力都没码就撤了。
T4码dfs序和线段树的时候由于函数与Sub1的函数重名,害我de了十几分钟。然后想了一下不大众的挡,之前感觉能拿40 ,发现有一个超了,但也还多了十分。
T2,T3暴力都没码,我速速的30分钟码了2道题的暴力,此时11:57。沾沾自喜,以为稳了,这时我迅速提交T2,发现edge炸了……慌乱之下问了雪月花果断切谷歌,结果提交T2的时候由于太急多点了几下,直接给我提示15s后再提交,此时北京时间11:59分,省去中间焦急的等待过程,最后一分钟极限交上两道题,并且成功选择了C语言(由于之前没有用谷歌登过代码源),于是两题爆蛋。
最后40分钟心态爆炸了,犯了许多很糖的错误,如果我稳一点,至少BC的暴力分能拿。以及以后不要再像当时一样T2T3暴力都不码,直接去做数据结构了。
赛后
T1 大概是一个很典的数位dp,如果你状态设置对的话,A 掉还是比较容易的,并且正解的状态也是很经典的状态设置,
T2 想到
T3 是在生成树上大胆贪心,基本懂了,T4 是跑 bfs 序,存下每个点第 i 层的区间解决邻域的修改查询,子树修改查询怎么处理呢?感觉不是很会啊。
T1 T2 已订,T3 T4 待订。
Day8
赛时
T1 读完题后忘记了数据范围,以为 n 是一个 2e5 级别的,于是以为这是什么神秘贪心,神秘性质题,在草稿纸上手玩了30分钟式子,有了一个初步的dp想法,但是复杂度很高,于是码了个暴力就撤退了。
T2 首先随便搞了一个较复杂的 n^3 做法,枚举 i,枚举 k,再枚举
T3 一看数据范围,以为是什么神奇且逆天的贪心,再加之这时 whrdalao以及 xueyuehuadalao貌似(好像)都过了 T1,于是迅速跳了 T4 ,码了个暴力,回头看T1了。
觉得T1 没准诈骗,回头看了眼,好家伙,n<=100……,于是开始考虑了一下 dp 的细节。首先这个dp我们得从后往前d,原因是你从前往后d是有后效性 的,你不知道你后面到底打多少次,无法统计贡献,所以 初步设置状态是 $f_{i,j}表示考虑从 n 到 i ,你总共加了 j 的伤害的最大总伤害。发现对于 2 操作是无法转移的。纸上手玩一下发现这玩意儿转移还需要一个攻击回合下标和,于是状态就是这三个东西,差不多是 1e8 级别的,转移显然。A的时候差不多比赛也接近了尾声。最后20分钟都在调T2 ,不出意外
赛后
T2 首先题解
T3 竟然就分讨+模拟,赛时尊嘟被吓到了。
T4 不是很懂,而且讲得时候还有什么and卷积什么的,畏惧了。
T1 T3 已A,T2 T4待订。
Day9
赛时
T1首先想到了最终的糖果数一定是一个定值,为所有糖果 &
起来的值。然后直接就用这个东西码了个你
T2好像做过原,也忘了什么时候的事了,由于1个小时还没有 AT1,心态有点炸,当时不敢细想T2 ,知道T2 码量大,直接考虑暴力了,但是考虑我想了个暴力写完调完发现T了,仔细思考后发现我对于多个乘法用了乘法分配率,将n个数分别与3相乘再乘一块变成了n个数乘一块然后乘3……,暴力码炸了心态更崩了。
当时想稳住心态,决定无论怎样T1 必须A,不然后面的题肯定做不好。果断回去。仔细思考了一下,我们可以把原序列分成若干段,这几个段满足段内异或和为整个序列的异或和,发现最优的情况下就是每个段的长度减一再相加。接下来是怎么划分的问题,不妨假设只要当前异或和正确了,就开新的一段,这样做一定是优的,因为你考虑我把后面的那个数划给这一段的话除非后面的所有数都构不成一个正确的异或和,否则的话我这个数往哪个段上合并均可。如果后面的数都合不成正确的异或和的话他们所有的数肯定都要往这个段合并,我们直接特判掉就行了。于是做完了。
T3 一开始理解错题意了,我还疑惑你直接给 n 不就行了,给我序列干啥。大力推到了一波式子,用组合数公式胡搞了几分钟,发现可以 O(n)求,我心想,就这么简单???于是果断开码,然后直接过样例了,交上去后面的都Wa 了。感觉式子很对,但不知道为啥,打表输出了发现程序完美的执行了我的思路,此时剩30分钟,T3T4暴力没码,于是跳 T4 码了暴力回来,在最后15分钟的时候读懂题意了,速速码了个若只暴力,然后又想了个25分的,速速码了一下,成功在比赛结束后第 0.0001s 完成。
这场打炸了,签到做太久,而且T3理解错题意了,直接把dp题整成数学题了,前面太急了,后面太糖了
赛后
T2 是贪心,
T3 是简单dp,没啥好说的,都怪我太糖了。
T4 是图论好题,离线的部分听懂了,在线的k=1听懂了,k>1的倍增没搞清楚,待订,T1T2T3都订了。
感觉这场的问题就是心态和时间分配,其实T3比T1简单,但我没时间做了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探