Skip to content

Commit 2fd2494

Browse files
authored
Merge pull request #415 from hitonanode/tiny-fix-202603
Tiny fix 202603
2 parents 541d8f9 + af4103c commit 2fd2494

5 files changed

Lines changed: 91 additions & 4 deletions

File tree

.claude/commands/make-docs.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
$ARGUMENTS で指定された .hpp ファイルに対応する .md ドキュメントを作成してください。
2+
3+
引数が空の場合はエラーメッセージを出して終了してください。
4+
引数にはグロブパターン(例: `src/math/*.hpp`)や複数ファイルも指定可能です。
5+
6+
## 手順
7+
8+
1. 対象の .hpp ファイルを読み、公開インターフェース(クラス・関数・定数)を把握する
9+
2. .hpp と同じディレクトリ以下の `test/` を探索し、対応するテストファイル (`*.test.cpp`) があれば読む
10+
- 対応の判定: テストファイルが `#include` で対象 .hpp を参照しているか
11+
- `#define PROBLEM` の URL をすべて収集する
12+
3. 既存の .md ファイルが同ディレクトリにあれば読み、内容を尊重しつつ更新する(上書きではなく差分更新)
13+
4. 以下の規約に従って .md ファイルを作成し、.hpp と同じディレクトリに配置する
14+
- ファイル名: .hpp と同名で拡張子を `.md` に変える(例: `prime.hpp``prime.md`
15+
16+
## 規約
17+
18+
### Front Matter(必須)
19+
20+
```yaml
21+
---
22+
title: English Name (日本語名)
23+
documentation_of: ./filename.hpp
24+
---
25+
```
26+
27+
- `title`: 英語名 + 括弧で日本語の説明。例: `Primitive root modulo $n$ (原始根の発見)`
28+
- `documentation_of`: 必ず `./filename.hpp` の形式(相対パス、同一ディレクトリ内)
29+
30+
### 冒頭の概要(必須)
31+
32+
Front matter 直後に、1〜2 文でこのライブラリが何をするか簡潔に書く。
33+
計算量があれば $O(\cdot)$ 記法で明記する。LaTeX 数式を積極的に使う。
34+
35+
良い例:
36+
37+
- `$10^{18}$ 以下の正の整数を素因数分解する.`
38+
- `自然数 $N$ の入力に対し,$O(N^{2/3})$ で素数計数関数 $\pi(x)$ の値を計算.`
39+
40+
悪い例:
41+
42+
- `素因数分解をするライブラリです.` (何の?制約は?)
43+
- 計算量を省略している
44+
45+
### 本文セクション(任意、必要に応じて)
46+
47+
以下のセクションを必要に応じて記載する。すべて必須ではない。
48+
**ライブラリが単純(ラッパー関数1つ等)なら概要 + 問題例だけで十分。無理にセクションを増やさない。**
49+
50+
#### アルゴリズムの説明
51+
52+
- `## 原理`, `## ナイーブな説明`, `## 実装されているアルゴリズムについて` 等のセクション名
53+
- 数式を多用してアルゴリズムの概要を説明
54+
- 背景知識の説明を含めることもある
55+
- コードの実装詳細(変数名の逐一説明等)ではなく、数学的・アルゴリズム的なアイデアを書く
56+
57+
#### 使用方法 (`## 使用方法`)
58+
59+
- C++ コードスニペットで使い方を示す
60+
- 関数シグネチャ、引数の意味、返り値を説明
61+
- 複数の関数がある場合はサブセクション (`###`) で分ける
62+
- テンプレート引数がある場合はその制約も記載する
63+
64+
### 問題例セクション(強く推奨)
65+
66+
```markdown
67+
## 問題例
68+
69+
- [Problem Name - Judge](URL)
70+
```
71+
72+
- テストファイルの `#define PROBLEM` URL を必ず含める
73+
- 他の関連問題があれば追加してよい
74+
- テストファイルが見つからなかった場合はこのセクションを省略する
75+
76+
### 参考文献セクション(任意)
77+
78+
`## 参考文献・リンク` または `## リンク` の見出しで記載する。
79+
80+
### 文体・スタイル規約
81+
82+
- 日本語で記述(技術用語・変数名は英語のまま)
83+
- 句読点は「,」「.」(全角カンマ・ピリオド)
84+
- LaTeX 数式を積極的に使用(`$...$` インライン、`$\displaystyle ...$` でブロック風)
85+
- コードブロックは ` ```cpp ` で囲む
86+
- セクション見出しは `##` から始める(`#` は使わない)
87+
- 簡潔に書く。冗長な説明は避ける

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
.PHONY: format
22

33
format:
4-
find . -name "*.hpp" -o -name "*.cpp" -not -iwholename "*/.verify-helper/*" | xargs clang-format --Werror -i -style=file
4+
find . -type f \( -name "*.hpp" -o -name "*.cpp" \) -not -iwholename "*/.verify-helper/*" | xargs clang-format --Werror -i -style=file

data_structure/wavelet_matrix.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ template <class Int> class wavelet_matrix {
326326
wavelet_matrix<int> wm;
327327
328328
wm.build();
329-
vector tmp(wm.D(), vector<BIT<T>>(wm.N()));
329+
vector tmp(wm.D(), BIT<T>(wm.N()));
330330
wm.apply(i, j, [&](int d, int idx) { tmp[d].add(idx, wx); }); // point add
331331
T ret{};
332332
wm.prod(l, r, u, [&](int d, int l0, int r0) { ret += tmp[d].sum(l0, r0); }); // range sum

multithread/parallel_runner.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ template <ISolver Solver> class ParallelRunner {
137137

138138
/* Usage:
139139
struct Solver {
140-
using Ret = int;
140+
using Ret = lint;
141141
142142
void read_stdin() {
143143
// read input using std::cin

rational/rational_number.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#include <cassert>
33
#include <limits>
44

5-
// Rational number + {infinity(1 / 0), -infiity(-1 / 0), nan(0 / 0)} (有理数)
5+
// Rational number + {infinity(1 / 0), -infinity(-1 / 0), nan(0 / 0)} (有理数)
66
// Verified: Yandex Cup 2022 Final E https://contest.yandex.com/contest/42710/problems/K
77
template <class Int, bool AutoReduce = false> struct Rational {
88
Int num, den; // den >= 0

0 commit comments

Comments
 (0)