如何设计AtCoder代码模板:atcoder-cli的template.json深度解析
如何设计AtCoder代码模板atcoder-cli的template.json深度解析【免费下载链接】atcoder-cliAtCoder command line tools项目地址: https://gitcode.com/gh_mirrors/at/atcoder-cli如果你还在每道 AtCoder 题目前手动新建文件、粘贴头文件那么atcoder-cli的template.json值得你花 10 分钟学会。作为一款 AtCoder 命令行工具atcoder-cli 的模板系统能让你在创建比赛目录时自动铺好代码骨架、拷入静态文件、执行任意 shell 命令——真正做到一场比赛一次配置全部自动。本文带你完整拆解 template.json 的每个字段、格式字符串与环境变量最后给出一个 3 步落地的实战方案。 模板能帮你做什么3 件事当你运行acc new新建比赛或acc add新增题目时atcoder-cli 可以替你完成三件事铺放程序骨架把你的main.cpp自动复制到每题目录拷贝静态文件比如package.json、.gitignore、编译脚本执行 shell 命令比如npm install、生成编译规则每个模板就是配置目录下的一个文件夹核心是里面的template.json文件。模板的加载、校验与展开逻辑在 src/template.ts 中实现字段约束定义在 schema/acc-template-schema.json测试用例可以参考 tests/tests/template.ts。 template.json 字段全解析先看一份全家桶示例后续逐字段讲解{ task: { program: [main.cpp, [foo.cpp, {TaskID}.cpp]], submit: main.cpp, static: [foo, [bar, bar_{TaskLabel}]], testdir: tests_{TaskID}, cmd: echo Hi! }, contest: { static: [[gitignore, .gitignore]], cmd: echo Ho! } }task区块必填为每道题自动执行字段必填作用program✅骨架程序复制进题目目录不覆盖已有文件submit✅提交文件配置后acc submit可省略文件名直接提交static❌静态文件使用--force时会覆盖同名文件testdir❌样例数据下载目录名不配则回退到全局配置cmd❌文件就绪后执行的 shell 命令这里最容易踩坑的是program与static的区别program里的文件已经存在时会跳过并提示Skip保护你写了一半的代码而static的文件每次都会覆盖适合放需要保持最新的公共脚本。两种写法program: [main.cpp] // 原样复制 program: [[main.cpp, {TaskID}.cpp]] // 复制并按模板重命名数组形式表示[源文件名, 目标文件名]目标名支持格式字符串。contest区块可选建比赛目录时执行一次static语义同task.static常用于放置.gitignore、README.mdcmd语义同task.cmd但没有$TASK_*系列变量✨ 格式字符串文件名的自动改名术submit、testdir以及所有目标文件名中都可以使用格式字符串由 src/project.ts 中的格式化函数完成替换完整清单可通过acc format -h查看定义见 src/help.ts占位符含义示例{TaskLabel}题目标签A、B、C{TaskID}题目 IDarc100_a{TaskTitle}题目标题—{index0}/{index1}题号0 起 / 1 起0、1{alphabet}题号字母a、b、aa{ContestID}比赛 IDarc100{ContestTitle}比赛标题—{TailNumberOfContestID}比赛 ID 尾部数字100效果直观写program: [[main.ts, {TaskID}.ts]]题目 A 的骨架文件会自动命名为abc001_a.ts。cmd可用的环境变量速查命令以题目目录或比赛目录为工作目录执行参数通过环境变量传入task.cmd$TEMPLATE_DIR、$TASK_DIR、$TASK_ID、$TASK_INDEX、$CONTEST_DIR、$CONTEST_IDcontest.cmd仅前三个和$CONTEST_DIR、$CONTEST_ID实用写法示例cmd: npm install可让 TypeScript 比赛开箱即跑cmd: echo $TASK_ID适合调试确认变量是否正确注入。 实战3 步搭好你的第一个 AtCoder 代码模板第 1 步创建模板目录cd acc config-dir mkdir cpp cd cpp第 2 步编写 template.json 与骨架代码在同目录下放入你自己的main.cpp个人头文件、模板代码并编写template.json{ contest: { static: [[gitignore, .gitignore]] }, task: { program: [main.cpp], submit: main.cpp } }template.json必须包含task块且task内submit与program为必填项缺失时会在校验阶段直接报错。第 3 步使用并设为默认acc templates # 查看所有可用模板 acc new abc001 --template cpp # 指定模板创建比赛 acc config default-template cpp # 设为默认模板之后无需再写 --template 常见坑与排查思路加载时报 schema 错误先检查task.submit/task.program是否缺失字段约束见 schema/acc-template-schema.json骨架文件没出现查看终端是否有Skip提示——program文件已存在时会被跳过这是保护机制而非故障cmd没按预期执行确认当前工作目录是题目目录并优先用echo $TASK_ID这类命令验证环境变量样例目录名不对未配置testdir时会使用全局配置default-test-dirname-format的默认值 小结template.json 是 atcoder-cli 的灵魂配置task管每道题、contest管整场比赛配合格式字符串与环境变量几乎可以自动化比赛中的全部准备工作。掌握它之后每次acc new都是一次开箱即战把时间留给真正思考算法的环节。【免费下载链接】atcoder-cliAtCoder command line tools项目地址: https://gitcode.com/gh_mirrors/at/atcoder-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Android 9/14/15 预装 APK 的构建入口与分区差异

Android 9/14/15 预装 APK 的构建入口与分区差异

摘要同一个 APK 在 Android 9、Android 14 和 Android 15 上,可能需要使用不同的源码目录、构建规则和安装路径。EShare 在 Android 9/14 中位于 device 目录,而 Android 15 位于 vendor 目录;Android 14 支持的 system_ext 模块规则&#xf…

2026/11/6 15:56:10 阅读更多 →
AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单

AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单

AMC-WebUI安全指南:多Key轮询、BYOK原则与自托管代理的风险边界完全清单 【免费下载链接】AMC-WebUI 面向 Gemini 的 Local-First AI 工作流 WebUI,集成多模态聊天、Canvas、文件处理、实时搜索、代码执行与高级推理。 项目地址: https://gitcode.com/…

2026/11/13 13:54:42 阅读更多 →
如何快速上手microservice-kafka:Java + Maven + Docker开发环境搭建与首次运行分步教程

如何快速上手microservice-kafka:Java + Maven + Docker开发环境搭建与首次运行分步教程

如何快速上手microservice-kafka:Java Maven Docker开发环境搭建与首次运行分步教程 【免费下载链接】microservice-kafka Demo to show how Apache Kafka can be used for communication between microservices 项目地址: https://gitcode.com/gh_mirrors/mi/m…

2026/11/11 9:23:13 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻