本地优先的 Codeforces / AtCoder 竞赛题解管理工具
用一个本地工作空间整理比赛、题目和源代码。记录与代码都保存在当前电脑上,不上传、不自动提交,也不执行代码。
快速开始 · 功能 · 界面预览 · 数据与备份 · 验证状态
- 下载并完整解压 AlgoArchive-Windows-x64.rar。
- 进入解压后的
AlgoArchive-Windows-x64\算法竞赛文件夹。 - 双击
算法竞赛.lnk,或直接运行启动.bat。 - 程序会启动本地服务并打开默认浏览器,默认地址为
http://127.0.0.1:8765。
不要直接在压缩包预览窗口中运行。请保留启动窗口;关闭窗口或按 Ctrl+C 即停止服务。
压缩包已经包含 Windows x64 Python 3.13.9 运行环境,不需要安装 Python、执行 pip、管理员权限或下载前端依赖。
算法竞赛.lnk 使用相对工作目录和相对图标。只要整体移动完整程序文件夹,快捷方式可以继续使用。
如需在桌面创建快捷方式,双击 创建桌面快捷方式.bat。移动程序目录后,在新位置重新运行一次即可修复桌面快捷方式。
不要只把 .lnk 单独移动到桌面,也不要修改 启动.bat、算法竞赛.ico 或 runtime 的名称。
| 能力 | 说明 |
|---|---|
| 比赛归档 | 保存比赛标题、平台和官方链接,进入比赛后逐题添加代码 |
| 统一题库 | 比赛题目与单独添加的题目共享同一条记录和同一份源代码 |
| 平台视图 | 分别浏览 Codeforces、AtCoder 的比赛与题目 |
| 搜索筛选 | 按题目、编号、比赛、平台和代码语言快速定位 |
| 代码工作台 | 支持 C++、Python、Java 和其他文本文件,提供语法高亮、自动缩进、行号与快捷保存 |
| 链接去重 | 标准化官方题目链接,识别 Codeforces 的 contest 与 problemset 等价地址 |
| 数据安全 | SQLite 元数据与独立源代码文件配合事务、恢复日志和版本冲突检查 |
| 本地运行 | 只监听 127.0.0.1,并校验 Host、Origin 和 CSRF 请求头 |
- 使用
Tab/Shift+Tab缩进和反缩进。 - 回车会根据当前行自动延续缩进。
- 使用
Ctrl+S保存,macOS 浏览器使用Cmd+S。 - 语言会同步切换源文件扩展名:
.cpp、.py、.java或.txt。 - 单道题目的源代码上限为 2 MiB。
代码编辑器只负责整理与保存源码,不包含编译、运行或在线判题功能。
查看比赛、题目和各平台数量,快速进入最近编辑的题目与比赛。
在一个页面中维护题目元数据、比赛关联和源代码,保存后同步到所有入口。
截图来自本项目的本地实例。
- 在首页点击“新建比赛”,填写平台、标题和比赛链接。
- 进入比赛后点击“添加题目”,粘贴对应题目链接并填写编号或名称。
- 选择代码语言,粘贴或编写解答,然后保存。
- 在“全部题目”中按平台、比赛、语言或关键词筛选和查找。
比赛与题目的平台必须一致。同一道题目最多关联一场已保存比赛;取消关联只会移除比赛关系,不会删除题目或代码。
程序解压后的 data 目录是完整数据边界:
data/
├─ archive.sqlite3 # 比赛、题目和关联元数据
├─ codes/ # 实际源代码文件
└─ runtime.lock # 运行实例锁与本地端口信息
源代码按题目唯一 ID 保存,避免题名变化、重名或 Windows 文件名限制导致文件覆盖。数据库只保存元数据和相对文件路径。
备份与恢复
- 关闭程序。
- 复制整个
data文件夹。 - 恢复时先关闭程序,再用备份完整替换
data。
不要只备份 SQLite 数据库,也不要单独替换某个源代码文件,否则可能造成元数据与代码不一致。
- 取消关联:保留题目和代码,只移除所属比赛。
- 删除比赛并保留题目:删除比赛,题目保留在“全部题目”中。
- 删除比赛及题目:永久删除比赛下的题目记录和源代码文件。
- 删除题目:永久删除题目记录和源代码文件。
删除操作不能在应用内撤销。执行前请确认重要代码已有独立备份。
AlgoArchive-Windows-x64/
└─ 算法竞赛/
├─ 算法竞赛.lnk
├─ 算法竞赛.ico
├─ 启动.bat
├─ 创建桌面快捷方式.bat
├─ app.py
├─ web/
├─ runtime/
├─ data/
├─ tests/
├─ docs/screenshots/
├─ README.md
├─ TEST_REPORT.md
└─ THIRD_PARTY.txt
后端使用 Python 标准库的 http.server 和 sqlite3;前端是原生 HTML、CSS 和 JavaScript,无构建步骤、CDN 或在线字体依赖。
根据压缩包内的 TEST_REPORT.md,版本 1.0.0 的交付记录为:
- Python 标准库回归测试 23 项通过。
- jsdom 前端交互检查 20 项通过。
node --check web/app.js通过。- 已覆盖统一题库、链接去重、语言切换、并发冲突、异常恢复、重启持久化和本地请求校验等场景。
自动化测试记录运行于 Linux 的 Python 3.12 与 jsdom 环境。Windows 10 / 11 x64 是目标平台,但当前交付记录不包含完整的 Windows 实机测试。真实界面已在 Chrome 中渲染并截图,其他操作系统和浏览器组合仍可能暴露未覆盖的问题。
本版本不包含:
- 在线抓取题目信息或自动同步提交记录。
- 编译、运行、测试或在线判题。
- 代码版本历史、账号系统或云端同步。
- 批量导入、导出或自动备份。
Codeforces / AtCoder 页面链接需要网络才能打开,本地题库管理本身可以离线使用。
文件名:AlgoArchive-Windows-x64.rar
大小:10,116,324 字节
SHA-256:C198AD0623148A2FC0AA843FDA0B433DCC14FF1DCA57C83ACFBF3AC3D7EC00A5
Windows 发布包内含官方 Windows x64 Python 嵌入式运行环境。第三方来源和许可证见压缩包内的 THIRD_PARTY.txt 与 runtime/LICENSE.txt。

