全世界最强的算法平台codeforces究竟有什么魅力?

2023-05-16

大家好,之前说过由于和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网站就介绍到这里了,如果你也对算法感兴趣的话,不妨试着用一下它吧,相信你也会找到算法的乐趣。

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

原文链接,求个关注

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Centos 安装pyspider 必须成功

    Centos安装pyspider踩过的坑 xff01 xff01 xff01 一个接着一个 写在前面的话 xff1a 一直在本地机器小玩玩pyspider xff0c 今天心血来潮linux安排上 网上教程一大堆 xff0c 一个接着一个坑
  • Permutation Test

    常规步骤 xff1a 一般 多组间样本均数的比较是先做正态性检验和方差齐性 xff0c 然后在各组 都满足 正态性和方差齐性的前提下做方差分析 如果数据呈现正态分布 xff0c 但方差不齐 xff0c 则可以选择近似方法 Welch法 和
  • [vuejs] 在vuejs中使用websocket进行实时通讯

    在vuejs框架中使用websocket 可以比较方便的运用到vuejs框架的响应式系统 以及一些简单的生命周期函数 var app 61 new Vue el 39 app 39 data server 34 ws 127 0 0 1 8
  • [nginx] X-Cache: HIT的意思

    请求返回的数据是从缓存里拿到的X Cache HIT 缓存命中了 遇到一个返回接口数据总是不对 xff0c 在看到X Cache HIT才发现 给接口设置了缓存 xff01 xff01 xff01
  • [CSS] CSS display:flex实现内容水平垂直居中展示

    display flex实现内容水平垂直居中展示 需要增加下面两点就能实现 首先父级元素必须有高度 xff0c 没有高度就无法垂直居中 xff0c 如果想全屏垂直居中 xff0c 可以设置高度为100vh 比如body设置为这样 body
  • Java在字符串中查找匹配的子字符串

    示例 xff1a 在源字符串 You may be out of my sight but never out of my mind 中查找 my 的个数 输出 xff1a 匹配个数为2 三种方法 xff1a 1 通过String的inde
  • Ext4 vs XFS——你应该使用哪个文件系统

    运行 Linux 系统的用户几乎不会关注底层文件系统 事实上 xff0c 在安装 Linux 的过程中 xff0c 通常倾向于使用列出的默认文件系统而不探索其他可用选项 对于 Windows xff0c 事情要容易得多 xff0c 因为 N
  • Btrfs 与 Ext4 - 功能、优势和劣势

    文件系统控制从存储设备存储和检索数据的位置 方式和时间 日常系统进程需要一个高效的文件系统 Linux 内核支持多种文件系统 最常用的是 Ext4 Btrfs XFS 和 ZFS xff0c 这是 2018 年发布的最新文件系统 这些文件系
  • Extjs6 Tree 树数据筛选

    前端使用ExtJS6 xff0c 要求在菜单树上对菜单树的数据进行筛选 xff0c 提高用户的体验 现在功能已经完成 xff0c 这里记录下来便于后面遇到类似问题作为参考 xff0c 会贴上源码和官方Demo提供参考的源码 对Tree的筛选
  • apt update和apt upgrade命令 - 有什么区别?

    在之前的文章中 xff0c 我们查看了APT 命令以及您可以使用包管理器来管理包的各种方法 这是一个总体概述 xff0c 但在本指南中 xff0c 我们暂停并重点关注 2 个命令用法 这些是apt update和apt upgrade命令
  • 48 个 Linux 面试问题和答案

    你在准备 Linux 面试吗 xff1f 我们准备了一些常见的 Linux 面试问题及其答案 如果您是初学者 xff08 具有一定的 Linux 知识或获得认证 xff09 或具有专业的 Linux 管理经验 xff0c 那么下面的问答有助
  • 70 个 Shell 脚本面试问题和答案

    我们为您的面试准备选择了预期的 70 个 shell 脚本问题和答案 对于所有系统管理员来说 xff0c 了解脚本或至少基础知识真的很重要 xff0c 这反过来有助于在您的工作环境中自动执行许多任务 在过去的几年里 xff0c 我们已经看到
  • 如何使用命令行检查 KylinOS-Desktop 版本

    在本指南中 xff0c 我们将向您展示如何轻松检查系统上的KylinOS Desktop 版本 有两种主要方法可以实现这一目标 使用终端 使用图形用户界面 因此 xff0c 让我们深入了解如何使用上述方法来检查系统上的 KylinOS De
  • Linux 中的 20 大网络监控工具

    在本教程中 xff0c 让我们讨论可用于 linux 系统的最佳网络监控工具 有很多可用的工具 xff0c 如 nethogs ntopng nload iftop iptraf bmon slurm tcptrack cbm netwat
  • 将KylinOS-desktop的英文语言环境切换为中文的3种方式

    如果你在英语环境下安装了系统 那么默认语言可能会被设置为英语 所以你最好知道你的安装器使用的是什么语言 如果对语言有要求而又设置错误了 你可以自己进行修改 strong locale strong 命令显示当前配置 locale 命令会列出
  • 如何在 Ubuntu 22.04 上安装 最新版本Wine

    过渡到 Linux 的用户的担忧之一是他们是否可以在 Linux 上运行自己喜欢的应用程序 这些范围可以从 Windows 游戏和简单的应用程序软件 值得庆幸的是 Wine 允许用户在 Linux Unix 系统上运行和执行 Windows
  • 内网搭建Ubuntu(银河麒麟)的apt本地源服务器

    很多项目要求内网环境 导致服务器不能使用公网的apt源 所以需要在内网中搭建一个本地的apt源 本教程将指导你如何利用apt mirror建立局域网内的Debian Ubuntu源镜像 如果你需要在局域网内安装多套系统 那么建立一个本地的D
  • linux分区parted工具的用法详解

    一 概述 通常我们用的比较多的分区工具是fdisk命令 xff0c 但由于fdisk只支持MBR分区 xff0c MBR分区表最大支撑2T的磁盘 xff0c 所以无法划分大于2T的分区 而parted工具可以划分单个分区大于2T的GPT格式
  • Kylin-Desktop 提示sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

    问题 sudo usr bin sudo 必须属于用户 ID 0 的用户 并且设置 setuid 位 解决方案 经过原因排查是 usr bin的权限修改了 使用了命令 sudo chmod R 777 nbsp usr bin 导致 需要将
  • Extjs6 下 动态生成grid表头

    前端使用Extjs6j技术 遇到动态生成gird的需求 这里记录下 xff0c 便于以后使用 首先定义表格 xtype 39 grid 39 region 39 center 39 reference 39 salaryGrid 39 co

随机推荐