Skip to content

azl397985856/cf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Codeforces

Travis Travis Travis Travis Travis Travis


我们的 slogan 是: 只有熟练掌握基础的数据结构与算法,才能对复杂问题迎刃有余。

建议大家先学习基础的数据结构与算法,然后从简单到困难的顺序刷题。

前置知识

  • 这里有一张互联网公司面试中经常考察的问题类型总结的思维导图,我们可以结合图片中的信息分析一下。

leetcode-zhihu

(图片来自 leetcode)

其中算法,主要是以下几种:

  • 基础技巧:分治、二分、贪心
  • 排序算法:快速排序、归并排序、计数排序
  • 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
  • 图论:最短路径、最小生成树
  • 动态规划:背包问题、最长子序列

数据结构,主要有如下几种:

  • 数组与链表:单 / 双向链表
  • 栈与队列
  • 哈希表
  • 堆:最大堆 / 最小堆
  • 树与图:最近公共祖先、并查集
  • 字符串:前缀树(字典树) / 后缀树

基础数据结构与算法学习

在线阅读地址

如何刷 codeforces

一定不要死磕一看就能写出来的题目,也不要死磕看了十分钟也没有思路的题目。

进入 problemset, 选择自己想刷的题目即可。比如我想刷搜索题目,就可以标签中进行过滤,同时建议大家选择难度范围。新手建议 1700 分以下练习。等到熟练之后可以挑战一下 1800 - 2500 分数段。

同一个分值的题目难度差距也可能很大,因此大家同时结合通过人数来排序。

这样可以更容易找到难度合适的题目。

大家从这个链接进去就可以看到我选择的过滤标签了。

等到大家熟悉了节奏,推荐大家按照比赛的方式做题。即将一次 contest 的题目整个做一遍。cf 中是按照编号进行组织的。

比如 101a 就是 101 比赛的第一道题。 101c 就是 101 比赛的第三道题,以此类推。

做完一道题建议大家看一下题解,入口是这里的 tutorial。

💻 插件

如果你想看其他搜索人的代码,则可以进入 status 查看。所有人的答案都在这里,你可以根据多个维度进行排序,比如按照代码长短排序。

大家可以使用codeforces-solutions 插件快速进入当前题目的 status 界面。

还有很多其他的 cf 插件大家可以体验一下。比如 Codeforces Enhancer

另外大家也可以使用 zerotrac 开发的用于计算力扣中题目分数的网站。这里的分数指的是竞赛分,大家可以根据自己的竞赛分选择稍微比自己竞赛分高一点的题目进行练习,注意这个只是根据通过人数等计算的一个预估分数。地址:https://zerotrac.github.io/leetcode_problem_rating/

这个网站只能预估 764 题以后的题目,之前的老题无法预估。

codeforces 经典题目解析

你可以将其看成是学习路线,也可以看成是经典题目。

这里的题目按照难度进行汇总,方便大家根据自己的情况选择学习。分数划分和 codeforces 一致,范围为 800 - 3500 分。

800 分合集

900 分合集

1200 分合集

1300 分合集

1400 分合集

1700 分合集

License

CC BY-NC-ND 4.0

About

Codeforces Solutions: A Record of My Problem Solving Journey.( Codeforces题解,记录自己的Codeforces解题之路。)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages