Agent Skills
返回列表
OIer 码风指南

OIer 码风指南

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_59e2247b/oier-skill。

技能介绍

要解决的问题

LLM 生成竞赛代码时,默认套用工程风格:分开引入多个标准头、写 std:: 前缀、长驼峰命名、每几行一段注释。但 OI 代码是赛时的一次性代码——不需要团队协作,不需要长期维护,追求的是写得快、看得清(对自己而言)、跑得对。工程风格在这里不是「更规范」,而是纯粹的负担。

技能如何工作

这个技能把 OI 圈的真实码风总结成一组明确规则:

  • 语言与框架:一律 C++,单个万能头 #include <bits/stdc++.h> + using namespace std;,main 结尾必须 return 0;。
  • 宏与类型:大量 int 需要 long long 时用 #define int long long,配套必须写 signed main(),两者绑定出现。
  • 注释极简:默认不写注释;仅关键一步可一句话点到(如 // 差分);调试输出和 freopen 以注释状态保留而非删除。
  • 排版:不出现空行(最多声明区与函数间一个),二元运算符两侧加空格。
  • 大括号:单语句不打括号;多语句时一律 Allman 风格单独成行。
  • 容器与 STL:vector<vector<int>> g(n + 1) 存图,range-for 遍历,C++17 结构化绑定解 pair。
  • 命名:n/m/k/q、f、vis、fa、dfs、getf 这类短名,绝不出现 isVisited 式命名。
  • 一票否决清单:出现 std:: 前缀、驼峰变量、函数注释块、true/false 字面量、函数原型分离、try/catch 等任一项,即判定「不是 OI 码风」,必须改掉。

适用边界

  • 只适用于一次性竞赛/题解代码,不要拿它写需要协作与维护的工程代码。
  • 默认输出干净版;用户明确要求「最真实的码风」时才加入注释掉的 cerr、freopen 和极少量宣泄注释。
  • 用户有自己的偏好(如 Tab、K&R 大括号)时以用户为准。

使用场景

  • 在算法平台刷题时,需要生成符合赛时习惯的最短路题解代码,要求极短命名且不带任何解释性注释。
  • 撰写算法技术博客时,需要展示一段带调试痕迹的真实竞赛代码,包含注释掉的 cerr 和 freopen。
  • 当求和与乘法极易溢出 int 时,需要生成全局宏定义重定义类型并搭配 signed main 函数的题解代码。

适合人员

  • 准备参加 CSP 或 NOIP 的信息学竞赛选手,需要快速生成符合赛时习惯的一次性提交代码。
  • 算法竞赛教练或技术博主,需要批量生成带有真实调试痕迹和典型码风特征的讲解示例代码。
  • 习惯使用 OI 风格编写 C++ 的开发者,希望 AI 助手输出的代码能完全契合自己无需工程化封装的短平快习惯。