Educational Codeforces Round 3 复盘
洛谷评级是:红,橙,黄,绿,蓝,紫
T1
排序+贪心,非常简单
T2
开桶+推公式就可以,很好推
T3
难想一些,先求到平均值,以为极差不是0就是1,从小到大排序,让前面一段等于平均数,后面一段等于平均数+1即可,应为一加对应一减
Q1:为什么要排序
前面的小,所以最好变成平均值,后面的大,所以尽可能变成平均值+1,有的时候排序可以将一个序列分为两段,方便处理
T4
这个对我就比较难了,思路正常,但是总感觉代码挺难写的
因为如果第a天能达到要求,则a后面的日子,全都可以,因为前面的汇率都能用,花费一定是单调不增的,于是二分一开始我居然有点想到\(dp\),不过这个数据范围明显不是
然后是贪心,那一天汇率最好,你就抓住机会买完就可以
代码有点烦,三个pair,下次还是用struct吧
Tip:输出一定要写完整...
基于该比赛前四题的核心启发(我将我的心得告诉\(deepseek\),它给我的):
-
看到“最少/最早”先想贪心:A题直接排序取最大,D题二分答案+贪心选最便宜。
-
总和不变时,最终状态是确定的:C题利用平均值确定最终每个数只能是floor(avg)或ceil(avg)。
-
正难则反:B题用“总对数减去同类型对数”比直接枚举不同类型更简单。
-
二分答案的典型场景:D题“最早第几天能完成”具有单调性,外层二分天数,内层贪心判断。
-
多条件决策:D题中美元/英镑两种货币,分别找最优汇率,商品按花费排序后取前k个。
-
操作次数的计算:C题中总差距除以2才是实际移动次数(一次操作同时改变两个数)。
一句话总结:贪心、二分、数学推导、组合计数,这四题覆盖了CF前几题最常用的四种思维模式。
如果对你有帮助,点个赞再走吧!

浙公网安备 33010602011771号