如何提升自己的Codeforces分数

如何提升自己的Codeforces分数

此篇为 XiaoMo247 对原文的总结,原文是 Masataka Yoneda / E869120 的 A Way to Practice Competitive Programming (From Rating 1000 to 2400+)

目前只读了 1000-1400 和 1400-1900,等作者 codeforces 分数到了 1900 再更新后面的。

首先是作者对三个 oj 网站的推荐:Codeforces,Atcoder,TopCoder。

然后就是大家最关心的如何提高自己的 cf rating。

1000-1400

达到1400评分只需要三件事:

  • 你能快速写出直接的模拟(在5-10分钟内)。

  • 你能快速写出暴力解法(在5-10分钟内)。

  • 你能在脑中或纸上把问题分成几种情况(例如,N=2,N=3,或N>=4)。

如何训练:

练习简单的编码和思考,做Atcoder的 B 题和 C 题。

做题时有一些要点需要注意:

  • 如果思考15分钟无法解决B题或思考30分钟无法解决C题就看题解。
  • 在能解决问题的时候多看看高手的代码,往往能学到新的东西。
  • 特别是在解决C题的时候,不管怎么样,建议你在纸上写下做题痕迹,包括思考过程和草稿。

1400-1900

达到1900只需要达到两点:

1.知道并能掌握以下算法:

暴力 动态规划 深搜 广搜 Dijkstra算法 树状数组 排列组合 位掩码 二分

2.能够快速编写代码(5min 解决 CF1100 分左右的问题,10min 解决 CF1400左右的问题)。

如何训练:

如果你不能快速写出代码,你应该去练习 ABC 的 C 题和 D 题,最后平均能在10min 内解决问题 C,20min内解决问题 D 就已经可以了。

如果你不能很好的解决CF1400分以上的问题,你需要针对的训练那一类问题,例如DP不好,就训练 1200-1400 的 DP 题。

如果你能解决一些典型问题但不擅长解决CF1500分左右的问题,你应该开始练习 TopCoder。有时,特别是在Div1+Div2比赛中,一些问题需要数学概念或思维。由于在 TopCoder 中有很多使用这些概念的问题(而且实现简单!),你应该解决 TopCoder 的问题,推荐解决最近100个SRM中的 Div1Easy。

如果你擅长解决问题但在实际比赛中表现不好,你应该多参加虚拟比赛(VP)。

posted @ 2024-06-10 18:09  XiaoMo247  阅读(1337)  评论(0编辑  收藏  举报