Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>Algorithm Training Tool(算法训练)New to Visual Studio Code? Get it now.
Algorithm Training Tool(算法训练)

Algorithm Training Tool(算法训练)

wait..yyy

|
1 install
| (0) | Free
算法竞赛训练工具:拉题/题面、样例自测、AI 找错/审思路/题解/调题单、同题 AC、提交、五平台账号、Competitive Companion 接收器
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Algorithm Training Tool(算法训练工具)

算法竞赛训练工具:拉题/题面、样例自测(计分/自定义测试)、AI 找错/审思路/题解/调题单、同题 AC、浏览器提交、五平台账号/Handle、Competitive Companion 接收器。

Marketplace 安装后仍需 clone cph-add-tool 仓库并用 VS Code 打开:插件命令会调用仓库里的 tools/ 脚本;只有插件没有脚本时按钮会提示脚本不存在。

本插件是「工作区工具启动器」:需要配合 cph-add-tool 仓库里的 tools/ 脚本使用(clone 仓库并用 VS Code 打开该文件夹)。只有插件、没有仓库时,按钮会提示脚本不存在。

交流群:QQ 188241279(问题反馈 / 使用交流 / 更新通知)

安装 / 更新 / 卸载

powershell -NoProfile -ExecutionPolicy Bypass -File tools\install-vscode-extension.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File tools\install-vscode-extension.ps1 -Uninstall

装完 Ctrl+Shift+P → Developer: Reload Window 生效。

三种入口

  1. 活动栏图标(左侧竖条,🎓 图标 →「算法训练」):点开就是按钮面板,点按钮直接运行
  2. 状态栏左下角「🎓 算法训练」:弹出命令菜单
  3. 命令面板:Ctrl+Shift+P 搜 算法训练

面板里有什么

  1. 当前题单(顶部):显示 training/plan.json 里的本周题目,每道题一行(平台徽章 + 题目 + 难度),点一下直接在浏览器打开;下面是「刷新 / 完整题单」和重做队列入口
  2. 按钮分组:
分组 按钮 作用
训练 生成 / 刷新周题单 从 Codeforces + AtCoder + 洛谷三个平台选题,生成 training/plan.md / plan.json,面板自动刷新
训练 复盘最近一场 / 复盘指定比赛… 跑 cf-review.ps1,打开 review.md
题面 打开当前题面预览 打开当前 cpp 同目录 <题号>.md
题面 重新抓取当前题面 跑 cph-statements.ps1 -Solution <当前 cpp> -Force
代码 编译并跑样例 / 只编译 跑 cp.ps1 samples/build
设置 设置 CF handle 写 training/cf-handle.txt
帮助 打开训练手册 打开 training/README.md 预览

题单来源

  • Codeforces:官方 problemset API,按你的弱项 tag + rating 区间挑
  • AtCoder:kenkoooo 公开题库 + difficulty 模型,默认难度 rating±200
  • 洛谷:题库列表页(difficulty 3/4),脚本自动拿 C3VK cookie
  • 默认数量分配:CF 占一半,其余 AtCoder/洛谷均分;某平台失败会自动用 CF 补位

抓取整场比赛(Codeforces / AtCoder / 洛谷 / 牛客)

面板「训练」分组 → 📥 抓取整场比赛(CF/洛谷/牛客/AtCoder),粘贴比赛链接即可:

  • https://codeforces.com/contest/2278(正赛;Gym/私有比赛需要登录,不支持)
  • https://atcoder.jp/contests/abc402
  • https://www.luogu.com.cn/contest/251050
  • https://ac.nowcoder.com/acm/contest/85333

抓取过程中进度通知上有取消按钮(可随时中断);抓取完成后可点「选择题目打开」→ 选一道题,会打开 cpp 并把题面 md 分屏到侧边。

单个题目用面板「📥 抓取单个题目」或命令行 --single,会生成 md/cpp/.cph 并直接打开两栏。

会为每道题生成:<题号>.md 题面(英文自动 AI/ Bing 翻译)、<题号>.cpp(按初始模板生成)、<题号>.json 结构化题面数据、.cph 样例缓存(样例自测面板 / cp.ps1 samples 都能直接跑样例);整场还会生成 contest.json。已存在的 md 默认跳过,需要刷新在终端加 --force。

初始模板默认是仓库根目录的 new.cpp,可以这样改:

  • 面板「🧩 设置拉题初始模板」→ 选一个 .cpp 文件
  • VS Code 设置 algorithm-training-tool.pull.template(相对路径或绝对路径)
  • 命令行 --template=<文件>,或 training/pull-config.json 里的 "template"

Codeforces 题面页有 Cloudflare 防护,cph-statement.js 会在 403 时自动改用洛谷镜像 luogu.com.cn/problem/CF<contestId><index> 抓题面;Gym/私有比赛仍需要登录。

Competitive Companion 接收器(推荐,CF Gym/反爬)

CF 现在对脚本请求返回 Cloudflare 403(Just a moment...),Cookie 不稳定。推荐用浏览器:

  1. 浏览器安装 Competitive Companion
  2. 插件启动本地接收器(默认 127.0.0.1:27121)
  3. 浏览器打开题目页 → 点 Companion 的「+」
  4. 自动生成 <题号>.cpp/.json/.md

面板「快速开始 → Companion 接收」可看状态;端口设置 algorithm-training-tool.companion.port。 Gym/私有比赛推荐用这个方式,不需要把 Cookie 交给脚本。

提交到 OJ

样例自测面板顶部新增 🚀 提交到 OJ:

  • 自动读取当前题的 <题号>.json / .cph 缓存里的题目链接,判断 OJ
  • 提交前会保存当前文件(含未保存修改)
  • 支持 Codeforces(正赛/Gym)、洛谷、AtCoder 自动提交;牛客暂不支持自动提交
  • 自动提交需要对应平台 Cookie;CF/洛谷被反爬拦截时建议用 🌐 浏览器提交(复制代码):自动复制当前代码并打开提交页,在网页粘贴提交
  • 提交成功显示提交记录链接,可在浏览器打开

浏览器登录 / 自动提交(实验性)

  • 面板「账号 → 浏览器登录」选择平台,工具会用本机 Edge/Chrome 的独立 profile(training/browser-profile/)打开登录页;登录态保存在该 profile
  • 样例自测面板「🖥 自动提交(浏览器)」通过 CDP 打开提交页、填入当前代码、选择 C++ 语言并点击提交;支持 Codeforces / AtCoder
  • 需要先在「浏览器登录」里登录对应平台;首次会弹出可见浏览器窗口
  • 自动提交尚未用真实账号完整验证;失败时用「🌐 浏览器提交(复制代码)」手动提交更稳

账号登录

活动栏「算法训练」→「账号登录」:

  • 登录 Codeforces / 洛谷 / 牛客 / AtCoder:点按钮 → 「打开登录页」先在浏览器登录 → 回来点「粘贴 Cookie」→ 粘贴对应网站的 Cookie 请求头
  • 登录成功后自动读取昵称并显示在面板顶部「账号:」一行;CF 同时会更新 handle
  • 支持「检查账号状态」批量校验已保存的 Cookie;「清除平台 Cookie」可按平台或全部清除;「打开 Cookie 目录」直达 training
  • Cookie 只保存在本机 training/cf-cookies.txt / training/cookies.<platform>.txt,已 gitignore
  • 注意:CF 当前对 curl 请求有 Cloudflare 拦截,Cookie 登录/自动抓取可能 403;Gym 请优先用 Companion 接收器
  • 另外支持 设置各平台 handle(CF/洛谷/牛客/LeetCode/AtCoder,存 training/handles.json),用于公开主页/同题 AC 查询

样例自测(计分)

活动栏「算法训练」→「样例自测」块:读取当前题目的 .cph 缓存或 <题号>.json,点「▶ 运行全部测试」编译并逐题运行,显示样例/自定义通过数、总得分、百分比;每个测试点可直接编辑输入/期望输出、单测运行并保存。每个测试点都可以实时编辑输入/期望输出:点「▶ 运行此测试」只跑这一条,点「▶ 运行全部测试」会先自动保存所有编辑再跑(样例修改存 <题号>.sample-overrides.json,自定义存 <题号>.custom-tests.json)。打开/切换 .cpp 时面板自动刷新,不需要手动「重新读取」。

AI 助手(OpenAI 兼容 API)

三个地方都能设置,任选一个:

  1. 面板「AI 助手」分组 → ⚙️ 设置 AI API(弹输入框:baseUrl → 选模型 → API Key → 自动提示测试连接)
  2. 面板「🧰 在 VS Code 设置中编辑」或 Ctrl+, 搜 算法训练(配置项 algorithm-training-tool.ai.baseUrl / ai.model / ai.apiKey / ai.temperature)
  3. 直接编辑 training/ai-config.json

左下角状态栏会显示 $(sparkle) AI 已配置 / AI 未配置,点一下就能改。DeepSeek 当前模型名是 deepseek-flash / deepseek-v4-pro。

按钮 作用
💡 AI 提示(当前题) 先读你**当前编辑器里的代码(包括未保存的修改)**做「代码体检」(思路对不对/哪里可能是 bug/哪一步没写完),再按级别给针对性提示;教练模式,不直接给完整代码
❓ 问 AI(当前题) 带题面 + 当前代码提问,默认只给思路
🧠 AI 复盘(选比赛) 先刷新 review.md 数据,再生成 review.ai.md(卡点/关键观察/总结)
🌐 AI 翻译当前题面 重抓题面并用 AI 翻译(失败自动退回 Bing)
⚙️ 设置 AI API / 🔌 测试 AI 连接 / 🧰 VS Code 设置 配置与连通性测试

配置好后,拉题自动生成的中英题面也会优先用 AI 翻译。生成的 AI 结果在 .build/ai-hint.md / .build/ai-answer.md 或比赛目录 review.ai.md,并自动打开预览。

题面自动预览

  • 打开任何有同名 .md 的 .cpp 时,会自动在侧边分屏题面预览;VS Code 设置 algorithm-training-tool.autoStatementPreview=false 可关闭

  • 拉题后题面 md 生成完会自动在右侧打开预览,但只对当前正在编辑的那道题生效:整场拉题(一次拉很多题)时不会弹出一堆预览,只有最后一个正在编辑的题目会开

  • 30 秒内同一份题面不会重复弹预览

  • 想彻底关掉:VS Code 设置里把 algorithm-training-tool.autoPreview 设为 false(或用 Ctrl+, 搜 算法训练)

说明

  • 需要打开本工作区根目录(扩展按 workspaceFolders[0] 找 tools/)
  • 所有输出在 输出 面板的「算法训练工具」频道
  • 改完源码后跑一次 install-vscode-extension.ps1 再 Reload
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft