大家好,之前说过由于和LeetCode结了梁子,所以周末的LeetCode专题取消了,给大家写点其他专题的算法问题。目前选择的是国外著名的编程竞赛平台——codeforces。它在竞赛圈名气比较大,对于普通大学生而言可能了解不多。所以今天这篇文章简单和大家介绍一下codeforces这个网站,以及它的使用方法。

链接:codeforces.com

codeforces简介

简单介绍一下codeforces这个网站,codeforces位于宇宙编程最强的毛国。据说最早是由俄罗斯的一群大学生维护的,它最大的特点就是代码和题解的公开。所有人都可以随意查看其它大牛的代码,可以说是非常具有开源精神了。

codeforces很大的特点就是题目兼容并蓄,什么难度等级的题目都可以找到。并且题目很有意思,往往思维陷阱比较多,也就是思维题比较多。对于数据结构以及算法的考察相对弱一些,更多的时候往往是告诉你用什么算法你也不知道怎么做……

codeforces另外一个很大的特点就是它有自己的上分系统,基本上每周会举办一到两次在线的算法比赛。一般的比赛时长是两个小时,只要注册账号就可以免费参加。我记得当年第一次参加比赛会获得一个初始分是1500,然后根据你在比赛当中的表现上分或者减分。由于参加的选手水平实力强度不一,所以它开设了好几个档次(div),不同层次的选手面对的题目难度也不一样,这样保证了大家都可以愉快地参赛。

这块内容比较重要,我们放在后面详细介绍。

基本功能

简介介绍一下codeforces当中的功能以及页面,这个是首页的banner,我们挑几个比较重要的来介绍一下。

TOP

首先是Top,top里基本上是大牛放出来的一些资料、博客和题解什么的。比如下图就是一个大牛整理的一些算法和数据结构的经典问题整理。

这里面干货还是很多的,但是由于是国外的网站,所以显然肯定是全英文的。不过也不要惧怕,大家都是技术男,而且大多数不是native。描述一个问题或者是算法的时候也不会使用太晦涩的单词,所以还是蛮好懂的。另外现在在线翻译功能也很发达,我当年英语很差的时候都没什么压力,所以大家也不要担心。

contest

第二个重要的栏目是contest,里面是正在进行以及过去举办过的线上比赛。

比如上图就是目前的一个比赛安排计划,即将开始的比赛会多出来一个register按钮,让大家注册参加。

比赛名称后面括号里div表示的是难度等级,div1是最高难度。需要有1900以上的rating才可以报名。div2难度会简单很多,基本上学过算法和数据结构都可以进去做个一两题。div2的比赛前两题基本上都不涉及什么算法,主要是考验思维。一般到了C题之后才会考察一些算法和数据结构。

这张图是之前举办过的比赛,我们也可以点进去练习,它还提供replay功能,可以模拟当时的比赛的情况。

gym

gym英文是健身房的意思,这里顾名思义可以理解成练习题。

gym栏目下的一般是一些专业的比赛题以及acm的练习题,和contest里面的题比起来gym里面的题难度会更大一些。并且也会有各种算法和数据结构的专题。虽然看起来难度更大,但是里面的题目也是有区分度的,并不是每一题都很难,即使水平一般也是可以做一两道的。

首页当中比较常用的功能就是这些,后面还有像是小组、天梯、日历等一些功能,由于不是非常常用,这里就不多赘述了。

比赛

最后介绍一下codeforces当中的比赛,这个是它起家的核心功能,不能不提。

codeforces当中的比赛一般有六道题,由于只有两个小时的时间,我们一般也很难把6道题都做完。基本上能做出来三题,rating就不会跌了。当然rating的涨跌情况也和你现在的rating有关,系统会根据你现在的rating对你的表现有一个期望,你最终的涨跌就是你实际表现和这个期望的差值。菜鸟做两题可能就可以涨分,但如果你现在rating已经很高的话,你也做了两题,那你肯定是跌的。

我们在比赛的时候可以实时看到每一道题过了多少人,这个有助于帮助我们选择题目。一般来说越前面的题目越简单,但是也有例外,比如有些题藏了一些陷阱,虽然简单,但是很多人没想到都挂在上面,这是常有的事。

当我们比赛的时候,经常会出现一种情况,就是我们做了3题之后还有时间,但是后面的题目一时想不出来了。这个时候多了时间可以干嘛呢,可以查看其它选手的代码。我们可以看到这里有一个栏目叫Room,在比赛的时候系统会随机分配房间。你可以查看同房间内通过了同样问题的人的代码。

codeforces在比赛的时候只会测试一小部分数据,真正的测试集会放到赛后进行测试。所以在比赛中测试通过的代码,只是通过了小数据验证,很有可能有隐藏的问题没被发现。当你通过了这道题之后,你就可以去查看其他通过人的代码,去分析它们有没有问题,如果发现了bug,可以构造一份数据hack掉他的提交。hack成功之后,你会获得分数的奖励。

你可以双击打开其他人的提交记录,去阅读他们的代码。到了比赛后期,能做的问题做的差不多了之后,就进入了紧张刺激的互相hack阶段。讲道理,这比只是单纯做题的竞赛要有趣多了。

以前我们acm集训队经常晚上一起打codeforces的比赛,有时候看到队友在一个房间里,还会互相关注一下近况,互相hack一把,不得不说现在怀念起来还是非常有意思的。

好了,关于codeforces网站就介绍到这里了,如果你也对算法感兴趣的话,不妨试着用一下它吧,相信你也会找到算法的乐趣。

衷心祝愿大家每天都有所收获。如果还喜欢今天的内容的话,请来一个三连支持吧~(点赞、关注、转发

原文链接,求个关注

本文使用 mdnice 排版

- END -

{{uploading-image-349576.png(uploading...)}}

全世界最强的算法平台codeforces究竟有什么魅力?的更多相关文章

  1. [USACO2004][poj2375]Cow Ski Area(在特殊图上用floodfill代替强联通算法)

    http://poj.org/problem?id=2375 题意:一个500*500的矩形,每个格子都有一个高度,不能从高度低的格子滑到高度高的格子(但相等高度可以滑),已知可以在2个相邻格子上加桥 ...

  2. 莫队算法初识~~CodeForces - 617E

    E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...

  3. 算法导论学习笔记1---排序算法(平台:gcc 4.6.7)

    平台:Ubuntu 12.04/gcc 4.6.7 插入排序 #include<vector> #include <algorithm> #include<iostrea ...

  4. 【随机化算法】codeforces Matrix God

    http://codeforces.com/gym/101341 [题意] 给定三个方阵A,B,C,问AB=C是否成立? 方阵的规模最大为1000 [思路] 求AB的时间复杂度为n*n*n,会超时 左 ...

  5. 强算KMeans聚类算法演示器

    这些天做C#实验以及这个KMeans算法演示器,学了一下openGL,感觉有待加强. //Point.h /* Point 结构体定义及实现 结构体重载了2个运算符: 1.== //推断两个Point ...

  6. 精通visual c++指纹模式识别系统算法及实现

    通过学习,掌握以下几个问题: 1.核心算法,并且向GVF衍生: 2.核心库封装的方法 2016年11月16日06:52:51 昨日实现了梯度场和频率场的计算.最大的感觉就是建立基础代码库的重要性. 如 ...

  7. 《算法设计手册》面试题解答 第五章:图的遍历 附:DFS应用之找挂接点

    第五章面试题解答 5-31. DFS和BFS使用了哪些数据结构? 解析: 其实刚读完这一章,我一开始想到的是用邻接表来表示图,但其实用邻接矩阵也能实现啊?后来才发现应该回答,BFS用队列实现:DFS可 ...

  8. 算法入门(C++)

    iostream,这个头文件里有很多常用的函数,比如swap交换两个变量的值,max求两个值的最大值等. cstdio头文件,这个头文件里包含C风格的输入输出.如果你之前学习过C++语言应该知道cin ...

  9. 机器学习--详解人脸对齐算法SDM-LBF

    引自:http://blog.csdn.net/taily_duan/article/details/54584040 人脸对齐之SDM(Supervised Descent Method) 人脸对齐 ...

随机推荐

  1. OpenGL学习日志(2020.4之前)

    咳咳,原本这个日志是本机上随便写的一些记录,也没怎么注意可读性和格式,有用信息密度很小,所以实用价值并不大.暂时由于不可抗因素得先鸽一段落了... 后续的日志会升格为模块化的学习记录,(应该)将会有很 ...

  2. js实现树级递归,通过js生成tree树形菜单(递归算法)

    方法封装: /** * 数据转换为树形(递归),示例:toTreeByRecursion(source, 'id', 'parentId', null, 'children') * @param {A ...

  3. WPF Devexpress ChartControl CrosshairLabel显示内容居右

    源码可加Q群:580749909. 一.解决的问题 ChartControl中希望CrosshairLabel的内容据右 or 自定义 二.实现. 多个显示实例(实例:条形,线形,点等等)下的内容设置 ...

  4. 解决Oracle12cr2自创建用户无法登录的问题

    说明: 下面创建是创建CDB本地用户,不是PDB应用程序用户,如果是PDB应用程序创建语法会不一样.下面介绍创建CDB本地用户. 创建表空空间 CREATE TABLESPACE YH datafil ...

  5. 2d 骨胳动画

    cocos2d下,优秀骨骼spine的换装思路 https://www.jianshu.com/p/a0019c6cf7ba

  6. python笔记-标准库unittest

    unittest核心工作原理 unittest中最核心的四个概念是:test case, test suite, test runner, test fixture. 一个TestCase的实例就是一 ...

  7. Rng(求逆元)

    Problem Description Avin is studying how to synthesize data. Given an integer n, he constructs an in ...

  8. oracle无法通过ip地址连接

    问题描述:使用plsql可以连接本地oracle实例,但telnet 192.168.130.71 (内网ip)不通. 其实在11g安装完成后,默认网络配置 listener.ora中 host = ...

  9. AngularJS中的父作用域与自作用域

    对于$scope上的原生类型,如$scope.name=""; 自作用域获取变量时,会查找作用域本身,找不到就会查找父作用域 修改时,若本作用域不存在,就会在本作用域创建一个变量, ...

  10. Kubernetes K8S之资源控制器Job和CronJob详解

    Kubernetes的资源控制器Job和CronJob详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2 ...