跳转至

OJ 工具

本頁面將介紹一些 OJ 工具。

cf-tool

cf-tool 是 Codeforces 的命令行界面的跨平台(支持 Windows、Linux、macOS)工具,支持很多常用操作。

源碼託管在 xalanq/cf-tool 上。

cf-tool 使用截圖 1

cf-tool 使用截圖 2

特點

  • 支持 Codeforces 中的所有編程語言。
  • 支持 Contests 和 Gym。
  • 提交代碼。
  • 動態刷新提交後的情況。
  • 拉取問題的樣例。
  • 本地編譯和測試樣例。
  • 拉取某人的所有代碼。
  • 從指定模板生成代碼(包括時間戳,作者等信息)。
  • 列出某場比賽的所有題目的整體信息。
  • 用默認的網頁瀏覽器打開題目頁面、榜單、提交頁面等。
  • 豐富多彩的命令行。

下載

前往 cf-tool/releases 下載最新版。

之後的更新可以直接使用 upgrade 命令獲取。

使用

將下載好的可執行文件 cf(或者 cf.exe)放置到合適的位置後(見常見問題的第二條),然後打開命令行,用 cf config 命令來配置一下用户名、密碼和代碼模板。

使用舉例

以下簡單模擬一場比賽的流程。

cf race 1136

要開始打 1136 這場比賽了!其中 1136 可以從比賽的鏈接獲取,比方説這個例子的比賽鏈接就為 https://codeforces.com/contest/1136

如果比賽還未開始,則該命令會進行倒計時。比賽已開始或倒計時完後,工具會自動用默認瀏覽器打開比賽的所有題目頁面,並拉取樣例到本地。

cd 1136/a

進入 A 題的目錄,此時該目錄下會包含該題的樣例。

cf gen

用默認模板生成一份代碼,在這裏不妨設為 a.cpp

vim a.cpp

用 Vim 寫代碼(或者用其他的編輯器或 IDE 進行)。

cf test

編譯並測試樣例。

cf submit

提交代碼。

cf list

查看當前比賽各個題目的信息。

cf stand

用瀏覽器打開榜單,查看排名。

常見問題

  1. 我雙擊了這個程序但是沒啥效果

    cf-tool 是命令行界面的工具,你應該在終端裏運行這個工具。

  2. 我無法使用 cf 這個命令

    你應該將 cf 這個程序放到一個已經加入到系統變量 PATH 的路徑裏(比如説 Linux 裏的 /usr/bin/)。

    不明白的話請直接搜索「PATH 添加路徑」。

  3. 如何加一個新的測試數據

    新建兩個額外的測試數據文件 inK.txtansK.txt(K 是包含 0~9 的字符串)。

  4. 怎樣在終端裏啓用 tab 補全命令

    使用這個工具 Infinidat/infi.docopt_completion 即可。

    注意:如果有一個新版本發佈(尤其是添加了新命令),你應該重新運行 docopt-completion cf

Codeforces Visualizer

官網:Codeforces Visualizer

源碼託管在 sjsakib/cfviz 上。

這個網站有三個功能:

  • 用炫酷的圖表來可視化某個用户的各種信息(比如通過題目的難度分佈)。
  • 對比兩個用户。
  • 計算一場比賽的 Rating 預測。

Competitive Companion

這個工具是一個瀏覽器插件,用於解析網頁裏面的測例數據。它支持解析幾乎所有的主流 oj 平台(比如 Codeforces、AtCoder)。使用這個插件後,再也不用手動複製任何的測例數據。

源碼託管在 jmerle/competitive-companion 上。

使用方法:

  • 在谷歌或者火狐瀏覽器上安裝插件。該工具會將解析到的測例數據以 JSON 格式的形式發到指定的端口。
  • 在本地安裝任何可以從端口監聽讀取數據的工具即可,可以參考 官方給出的示例

圖片演示:

Competitive Companion 使用演示

使用 zqxyz73 同學的 bytetools 完成演示。

ac-predictor

ac-predictor 是一個在 atcoder rating 更新前提前知道比賽 rating 變化的插件。

這個工具是一個 tampermonkey 腳本,所以你需要首先安裝 tampermonkey

完成後來到 greasyfork,點擊安裝即可。

安裝完成後,比賽的排行榜界面會顯示每個用户的 rating 變化預測。

這個工具有一個經由 GoodCoder666 漢化的版本,點擊 這裏 以安裝。