(持续更新)CF赛后失误总结(UPd on 20231010)
在CF上比赛中反映出的问题总结
- 在CF上比赛中反映出的问题总结
- 总是存在的问题:
- Educational Codeforces Round 156 (Rated for Div. 2)(较好发挥888名)
- Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)(本次出现问题较大)
- Educational Codeforces Round 155 (Rated for Div. 2)(9.24)
- CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)(9.18)
- Codeforces Round 896 (Div. 2)(9.10)
- Educational Codeforces Round 154(8.31)
- Pinely Round 2 (8.30)
- 更早以前:
总是存在的问题:
总想把前面的做对,浪费了宝贵的时间AC后面的
Educational Codeforces Round 156 (Rated for Div. 2)(较好发挥888名)
结果做出了前三道题
总结方向:
这一次说实话个人感觉还是可以,总共用了40分钟把前三题AC了,错就错在了第一题第一次提交忘记输出“YES”而是直接输出了方案。
说实话,这一次得分真的全靠的是我的做题速度,第四题没有做出来(当然大多数人也一样)。
发现第四题是什么题型呢?排列组合(统计方案)以及某种简化复杂度的题目。
主要是因为我都不知道怎么统计答案,所以简化复杂度基本也是不可能。
所以总结是,我要多做一些“满足某种性质的方案数”这种题型。
Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)(本次出现问题较大)
结果做出了前三道题
总结问题
这里总结下问题:
- 首先第二题交了4次,发现是题意没读懂,或者说是,我脑子没绕过一个弯,他的样例又特别简单。
问题在哪里呢?在于一个村民被传播信息后还可以继续传播,不一定需要村长用钱再来教化了。 - 其次第三题交了6次,这道题分k=1,2,3考虑是特别容易搞出来的。
我想了最多5分钟,被样例的简单性恶心了50分钟,最后发现k=2时,考虑最后一位非0时,应该取min(m,n-1),我一直取的n-1。
然后我整个人就在一直调试k=3的情况,自己怀疑自己,然后发现了这个不起眼的错误…… - 最后第4题的取mod问题,第三个样例一直过不了,我觉得我哪里柿子推错了呗。
好,检查柿子30分钟没出来。
最后发现有一个取加的地方没有mod!!!!!!!!
可惜比赛已经结束了~ - 我在第4题还有一个地方卡了很久,就是这个问题,直接写在这了(害得我用了10min打排列组合)
在n个数中至少选择一个数的方案数时2^n -1。随意选取则是2^n。
我也不知道我脑子哪里有问题……
Educational Codeforces Round 155 (Rated for Div. 2)(9.24)
结果(分数还没出,3000多名)
这一次,确实有网络的问题在内,卡了10分钟才进去。
但是可惜的是心态不是很好,第一题错了一次,第二题也是没有仔细验证就提交(但是一遍过了),第三题错了两次。
- 硬要说有什么缺陷的话,就是像那种排列组合计数的题什么的掌握不太好吧。
第三题和第四题都是这种东西,该练习就练习。
CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)(9.18)
结果(+73,3300多名)
这一次速度偏慢了,当然也有网速的原因在内涅,也有第一题细节没实现好卡在样例这件事。
但是质量也提高了,除了第二题nt样例都没过就放上去这件事。
这一次打的还不错,下次要争取冲击更难的四题。
-
硬要说失误点的话,应该就是第二题吧。我的性质是严格证明对的,但是在写的时候第一次直接全部xorB数组(这样肯定是错的)
后来看到样例错了,发现应该将A|(sum or B)后再xor,换句话说,应该模拟一边遍,运算顺序要注意啊。 -
然后的话,其实代码能力也要提高,第三题很快发现了性质(其实就是找一个数左边离他最远的大于等于他的数和在他右边离他最远的大于等于他的数)
关键是怎么最多nlogn维护的问题。我在这里想了30min,然后心态还差点崩了(以为T3都G了)
最后发现单调性可用双指针,然后双指针的调试让我差点心态又崩一次(用时太长了还容易挂)
令人惊喜的是最后交的时候一遍过。 -
这一条是在下午3点补上的,早上一直卡在这道题,原因是我D题一直在第四个测试点的1373个点上wa,也是一种很容易犯的错误:
源代码:
nowbuy=min(nowbuy,buy[i-1]);
left%=cha;
buy[i]=nowbuy;
正确代码:
nowbuy=min(nowbuy,buy[i-1]);
left-=cha*nowbuy;
buy[i]=nowbuy;
知道错在哪里了吧,因为可能钱还多,但是你能替换的物品少,要是直接mod的话,意思是剩下的钱全部用于交换了,但其实我不一定交换得完。
一定注意啊!
小总结:
感觉还是要把持好心态。
双指针的话尽量熟练一点。
Codeforces Round 896 (Div. 2)(9.10)
结果(+134,第2375名)
虽然分加的越来越少了,但是个人感觉这一次比赛打得很不错,美中不足的第一题wa了两次白给了100分。
这一次速度也不错,1-3题总共1.5h,可惜的是,最后1h没有想出来D的正解。
后来看了题解,发现我的思考非常接近正解了。
-
还是读题的问题,让我花费了较多时间。
题目表意:每次操作是将l-r的所有数字改为他们的xor和。
我的理解:每次操作后,ai改为l-i的xor和。
还好我发现这样不一定有解,于是又读了两遍题和样例。 -
思考不全面:
第一题我将有奇数个数的情况和偶数个数的情况混为一谈了。
但显然奇数个数的情况不可能整体两次修改结束。
小总结:
第四题没有做出来,纯粹是因为没证明下列结论:
当x/y不同时,2的x次方-2的y次方均不同。
Educational Codeforces Round 154(8.31)
结果(+164)
在比赛中,前面两道题25分钟结束,但是第三题怎么也写不对,能力不行吗?
- 读题读错啦!(或者说思想有漏洞)。
题目表意:是非递减序列就输出1,否则输出0。
我的理解:是非递减序列就输出1,是严格递减序列就输出0。(wa在第二个测试点)
题目表意:长度<=1的都当作非递减序列。
我的理解:长度只要在询问时<=1都是不合法的。
最后我删了源代码一句话就过了,可惜当时没有再读一遍题。
- 然后第四题确实是能力不行没想出dp来。
比赛上主要问题就是读题问题了。
总结:
好好读题目,了解好充分必要这些条件。
Pinely Round 2 (8.30)
结果:(+231)
-
这一套题目在第一题多wa了一次,原因是参数调用错了,低级错误。
-
这一套题目的失败点在于卡在了第二题,始终找不到性质。
这里等会总结下找性质题目通法吧。 -
还有一个问题在于挂在了第四题,原因是枚举的顺序问题。我是按照从左往右从上往下连续找,会导致前面的对后面的有影响。
就比如说,当前这个块,如果两种染色方案都合法,我不能立刻就直接选择其中一个做了,可能会对后面的有影响,误判无解。
正确做法是从左往右扫一遍,从上往下扫一遍,互不影响就好啦。
总结:(找性质)
这里对找性质的题目进行总结。
首先要分析,他的一个操作的最终结果可以达到什么效果,然后类比。
如果发现没啥规律,可以从后面几点来看:
- 我的操作交换顺序是否会有影响?
- 我的所有操作结束后,是否能达到一种或几种极有规律的最终序列?
更早以前:
早已淡忘,唯一铭记于心的是一个并查集的题目我硬打了连通分量,还挂了
本文作者:linghusama
本文链接:https://www.cnblogs.com/linghusama/p/17672903.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步