Skip to content

Commit e3eef9f

Browse files
authored
[auto-verifier] docs commit 535c2a6
1 parent d426af3 commit e3eef9f

11 files changed

+285
-103
lines changed

index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ data:
99
- icon: ':heavy_check_mark:'
1010
path: weilycoder/data-struct/unionfind.hpp
1111
title: weilycoder/data-struct/unionfind.hpp
12+
- name: weilycoder
13+
pages:
14+
- icon: ':heavy_check_mark:'
15+
path: weilycoder/fast-io.hpp
16+
title: weilycoder/fast-io.hpp
1217
- name: weilycoder/graph
1318
pages:
1419
- icon: ':heavy_check_mark:'
@@ -20,6 +25,9 @@ data:
2025
- icon: ':heavy_check_mark:'
2126
path: test/biconnected_components.test.cpp
2227
title: test/biconnected_components.test.cpp
28+
- icon: ':heavy_check_mark:'
29+
path: test/many_aplusb.test.cpp
30+
title: test/many_aplusb.test.cpp
2331
- icon: ':heavy_check_mark:'
2432
path: test/static_range_sum.test.cpp
2533
title: test/static_range_sum.test.cpp

test/biconnected_components.test.cpp.md

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ data:
2828
\ low[u] = std::min(low[u], low[v]);\n else if (in_stack[v])\n low[u]\
2929
\ = std::min(low[u], dfn[v]);\n }\n\n if (dfn[u] == low[u]) {\n sccs.emplace_back();\n\
3030
\ sccs.back().push_back(u);\n in_stack[u] = false;\n while (stk.top()\
31-
\ != u)\n sccs.back().push_back(stk.top()), in_stack[stk.top()] = false,\
32-
\ stk.pop();\n stk.pop();\n }\n }\n\n void solve() {\n for (size_t\
33-
\ i = 0; i < graph.size(); ++i)\n if (!dfn[i])\n tarjan(i);\n std::reverse(sccs.begin(),\
34-
\ sccs.end());\n }\n};\n\ntemplate <typename ptr_t = size_t> struct TwoEdgeConnectedComponents\
31+
\ != u)\n sccs.back().push_back(stk.top()), in_stack[stk.top()] = false,\n\
32+
\ stk.pop();\n stk.pop();\n }\n\
33+
\ }\n\n void solve() {\n for (size_t i = 0; i < graph.size(); ++i)\n \
34+
\ if (!dfn[i])\n tarjan(i);\n std::reverse(sccs.begin(), sccs.end());\n\
35+
\ }\n};\n\ntemplate <typename ptr_t = size_t> struct TwoEdgeConnectedComponents\
3536
\ {\n ptr_t dfs_time = 0, edge_time = 1;\n\n std::vector<bool> in_stack;\n \
3637
\ std::stack<ptr_t> stk;\n std::vector<ptr_t> dfn, low;\n std::vector<std::vector<std::pair<ptr_t,\
3738
\ ptr_t>>> graph;\n\n std::vector<std::vector<ptr_t>> eccs;\n\n TwoEdgeConnectedComponents(ptr_t\
@@ -45,21 +46,22 @@ data:
4546
\ low[u] = std::min(low[u], dfn[v]);\n }\n\n if (dfn[u] == low[u])\
4647
\ {\n eccs.emplace_back();\n eccs.back().push_back(u);\n in_stack[u]\
4748
\ = false;\n while (stk.top() != u)\n eccs.back().push_back(stk.top()),\
48-
\ in_stack[stk.top()] = false, stk.pop();\n stk.pop();\n }\n }\n\n void\
49-
\ solve() {\n for (size_t i = 0; i < graph.size(); ++i)\n if (!dfn[i])\n\
50-
\ tarjan(i, 0);\n }\n};\n\ntemplate <typename ptr_t = size_t> struct BiconnectedComponents\
51-
\ {\n ptr_t dfs_time = 0;\n\n std::stack<ptr_t> stk;\n std::vector<ptr_t> dfn,\
52-
\ low;\n std::vector<std::vector<ptr_t>> graph;\n\n std::vector<bool> is_cut;\n\
53-
\ std::vector<std::vector<ptr_t>> dccs;\n\n BiconnectedComponents(ptr_t n) :\
54-
\ dfn(n, 0), low(n, 0), graph(n), is_cut(n, false) {}\n\n void add_edge(ptr_t\
55-
\ u, ptr_t v) {\n graph[u].push_back(v);\n graph[v].push_back(u);\n }\n\
56-
\n void tarjan(ptr_t u, bool is_root) {\n dfn[u] = low[u] = ++dfs_time, stk.push(u);\n\
57-
\n if (is_root && graph[u].empty()) {\n dccs.emplace_back();\n dccs.back().push_back(u);\n\
58-
\ return;\n }\n\n ptr_t child = 0;\n for (const auto &v : graph[u])\
59-
\ {\n if (!dfn[v]) {\n tarjan(v, false), low[u] = std::min(low[u],\
60-
\ low[v]);\n if (low[v] >= dfn[u]) {\n if (++child > 1 || !is_root)\n\
61-
\ is_cut[u] = true;\n dccs.emplace_back();\n do\n\
62-
\ dccs.back().push_back(stk.top()), stk.pop();\n while (dccs.back().back()\
49+
\ in_stack[stk.top()] = false,\n stk.pop();\n\
50+
\ stk.pop();\n }\n }\n\n void solve() {\n for (size_t i = 0; i <\
51+
\ graph.size(); ++i)\n if (!dfn[i])\n tarjan(i, 0);\n }\n};\n\ntemplate\
52+
\ <typename ptr_t = size_t> struct BiconnectedComponents {\n ptr_t dfs_time =\
53+
\ 0;\n\n std::stack<ptr_t> stk;\n std::vector<ptr_t> dfn, low;\n std::vector<std::vector<ptr_t>>\
54+
\ graph;\n\n std::vector<bool> is_cut;\n std::vector<std::vector<ptr_t>> dccs;\n\
55+
\n BiconnectedComponents(ptr_t n)\n : dfn(n, 0), low(n, 0), graph(n), is_cut(n,\
56+
\ false) {}\n\n void add_edge(ptr_t u, ptr_t v) {\n graph[u].push_back(v);\n\
57+
\ graph[v].push_back(u);\n }\n\n void tarjan(ptr_t u, bool is_root) {\n \
58+
\ dfn[u] = low[u] = ++dfs_time, stk.push(u);\n\n if (is_root && graph[u].empty())\
59+
\ {\n dccs.emplace_back();\n dccs.back().push_back(u);\n return;\n\
60+
\ }\n\n ptr_t child = 0;\n for (const auto &v : graph[u]) {\n if\
61+
\ (!dfn[v]) {\n tarjan(v, false), low[u] = std::min(low[u], low[v]);\n\
62+
\ if (low[v] >= dfn[u]) {\n if (++child > 1 || !is_root)\n \
63+
\ is_cut[u] = true;\n dccs.emplace_back();\n do\n \
64+
\ dccs.back().push_back(stk.top()), stk.pop();\n while (dccs.back().back()\
6365
\ != v);\n dccs.back().push_back(u);\n }\n } else\n \
6466
\ low[u] = std::min(low[u], dfn[v]);\n }\n }\n\n void solve() {\n for\
6567
\ (size_t i = 0; i < graph.size(); ++i)\n if (!dfn[i])\n tarjan(i,\
@@ -86,7 +88,7 @@ data:
8688
isVerificationFile: true
8789
path: test/biconnected_components.test.cpp
8890
requiredBy: []
89-
timestamp: '2025-10-28 23:07:26+08:00'
91+
timestamp: '2025-10-29 20:09:11+08:00'
9092
verificationStatus: TEST_ACCEPTED
9193
verifiedWith: []
9294
documentation_of: test/biconnected_components.test.cpp

test/many_aplusb.test.cpp.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
data:
3+
_extendedDependsOn:
4+
- icon: ':heavy_check_mark:'
5+
path: weilycoder/fast-io.hpp
6+
title: weilycoder/fast-io.hpp
7+
_extendedRequiredBy: []
8+
_extendedVerifiedWith: []
9+
_isVerificationFailed: false
10+
_pathExtension: cpp
11+
_verificationStatusIcon: ':heavy_check_mark:'
12+
attributes:
13+
'*NOT_SPECIAL_COMMENTS*': ''
14+
PROBLEM: https://judge.yosupo.jp/problem/many_aplusb
15+
links:
16+
- https://judge.yosupo.jp/problem/many_aplusb
17+
bundledCode: "#line 1 \"test/many_aplusb.test.cpp\"\n#define PROBLEM \"https://judge.yosupo.jp/problem/many_aplusb\"\
18+
\n\n#line 1 \"weilycoder/fast-io.hpp\"\n\n\n\n#include <cstddef>\n#include <cstdint>\n\
19+
#include <cstdio>\n#include <limits>\n#include <sys/mman.h>\n#include <sys/stat.h>\n\
20+
#include <unistd.h>\n\nnamespace weilycoder {\nstruct FastReadMMap {\n size_t\
21+
\ file_size;\n char *data, *pos;\n\n FastReadMMap(const FastReadMMap &) = delete;\n\
22+
\ FastReadMMap &operator=(const FastReadMMap &) = delete;\n\n FastReadMMap()\
23+
\ {\n struct stat st;\n\n if (fstat(0, &st) != 0) {\n file_size = std::numeric_limits<size_t>::max();\n\
24+
\ return;\n }\n\n file_size = st.st_size;\n data = reinterpret_cast<char\
25+
\ *>(\n mmap(nullptr, file_size, PROT_READ, MAP_PRIVATE, 0, 0));\n pos\
26+
\ = data;\n }\n\n ~FastReadMMap() {\n if (file_size != std::numeric_limits<size_t>::max())\n\
27+
\ munmap(data, file_size);\n }\n\n char getchar() {\n return static_cast<size_t>(pos\
28+
\ - data) < file_size ? *pos++ : EOF;\n }\n\n char operator()() { return getchar();\
29+
\ }\n};\n\ntemplate <size_t buffer_size = 1 << 20> struct FastWriteFWrite {\n\
30+
\ char buffer[buffer_size], *pos = buffer;\n\n FastWriteFWrite() = default;\n\
31+
\ ~FastWriteFWrite() { flush(); }\n\n FastWriteFWrite(const FastWriteFWrite\
32+
\ &) = delete;\n FastWriteFWrite &operator=(const FastWriteFWrite &) = delete;\n\
33+
\n void putchar(char c) {\n if (pos - buffer == buffer_size)\n flush();\n\
34+
\ *pos++ = c;\n }\n\n void flush() {\n size_t write_size = pos - buffer;\n\
35+
\ if (write_size) {\n fwrite(buffer, 1, write_size, stdout);\n pos\
36+
\ = buffer;\n }\n }\n\n void operator()(char c) { putchar(c); }\n};\n\ntemplate\
37+
\ <typename Reader, typename Writer> struct FastIO {\n Reader reader;\n Writer\
38+
\ writer;\n\n FastIO() = default;\n\n FastIO(const FastIO &) = delete;\n FastIO\
39+
\ &operator=(const FastIO &) = delete;\n\n char getchar() { return reader.getchar();\
40+
\ }\n void putchar(char c) { writer.putchar(c); }\n\n void flush() { writer.flush();\
41+
\ }\n\n uint64_t read_u64() {\n char c;\n do\n c = getchar();\n \
42+
\ while (c < '0' || c > '9');\n uint64_t x = 0;\n do\n x = x * 10\
43+
\ + (c - '0'), c = getchar();\n while (c >= '0' && c <= '9');\n return x;\n\
44+
\ }\n\n void write_u64(uint64_t x) {\n static char buf[20];\n size_t len\
45+
\ = 0;\n do\n buf[len++] = '0' + (x % 10), x /= 10;\n while (x);\n\
46+
\ for (size_t i = len - 1; ~i; --i)\n putchar(buf[i]);\n }\n\n void\
47+
\ write_u64_line(uint64_t x) { write_u64(x), putchar('\\n'); }\n};\n\nusing FastIODefault\
48+
\ = FastIO<FastReadMMap, FastWriteFWrite<>>;\n} // namespace weilycoder\n\n\n\
49+
#line 4 \"test/many_aplusb.test.cpp\"\nusing namespace weilycoder;\n\nstatic FastIODefault\
50+
\ io;\n\nint main() {\n size_t t = io.read_u64();\n while (t--) {\n uint64_t\
51+
\ a = io.read_u64();\n uint64_t b = io.read_u64();\n uint64_t c = a + b;\n\
52+
\ io.write_u64_line(c);\n }\n return 0;\n}\n"
53+
code: "#define PROBLEM \"https://judge.yosupo.jp/problem/many_aplusb\"\n\n#include\
54+
\ \"../weilycoder/fast-io.hpp\"\nusing namespace weilycoder;\n\nstatic FastIODefault\
55+
\ io;\n\nint main() {\n size_t t = io.read_u64();\n while (t--) {\n uint64_t\
56+
\ a = io.read_u64();\n uint64_t b = io.read_u64();\n uint64_t c = a + b;\n\
57+
\ io.write_u64_line(c);\n }\n return 0;\n}"
58+
dependsOn:
59+
- weilycoder/fast-io.hpp
60+
isVerificationFile: true
61+
path: test/many_aplusb.test.cpp
62+
requiredBy: []
63+
timestamp: '2025-10-29 20:09:11+08:00'
64+
verificationStatus: TEST_ACCEPTED
65+
verifiedWith: []
66+
documentation_of: test/many_aplusb.test.cpp
67+
layout: document
68+
redirect_from:
69+
- /verify/test/many_aplusb.test.cpp
70+
- /verify/test/many_aplusb.test.cpp.html
71+
title: test/many_aplusb.test.cpp
72+
---

test/static_range_sum.test.cpp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ data:
4141
isVerificationFile: true
4242
path: test/static_range_sum.test.cpp
4343
requiredBy: []
44-
timestamp: '2025-10-28 23:07:26+08:00'
44+
timestamp: '2025-10-29 20:09:11+08:00'
4545
verificationStatus: TEST_ACCEPTED
4646
verifiedWith: []
4747
documentation_of: test/static_range_sum.test.cpp

test/strongly_connected_components.test.cpp.md

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ data:
2828
\ low[u] = std::min(low[u], low[v]);\n else if (in_stack[v])\n low[u]\
2929
\ = std::min(low[u], dfn[v]);\n }\n\n if (dfn[u] == low[u]) {\n sccs.emplace_back();\n\
3030
\ sccs.back().push_back(u);\n in_stack[u] = false;\n while (stk.top()\
31-
\ != u)\n sccs.back().push_back(stk.top()), in_stack[stk.top()] = false,\
32-
\ stk.pop();\n stk.pop();\n }\n }\n\n void solve() {\n for (size_t\
33-
\ i = 0; i < graph.size(); ++i)\n if (!dfn[i])\n tarjan(i);\n std::reverse(sccs.begin(),\
34-
\ sccs.end());\n }\n};\n\ntemplate <typename ptr_t = size_t> struct TwoEdgeConnectedComponents\
31+
\ != u)\n sccs.back().push_back(stk.top()), in_stack[stk.top()] = false,\n\
32+
\ stk.pop();\n stk.pop();\n }\n\
33+
\ }\n\n void solve() {\n for (size_t i = 0; i < graph.size(); ++i)\n \
34+
\ if (!dfn[i])\n tarjan(i);\n std::reverse(sccs.begin(), sccs.end());\n\
35+
\ }\n};\n\ntemplate <typename ptr_t = size_t> struct TwoEdgeConnectedComponents\
3536
\ {\n ptr_t dfs_time = 0, edge_time = 1;\n\n std::vector<bool> in_stack;\n \
3637
\ std::stack<ptr_t> stk;\n std::vector<ptr_t> dfn, low;\n std::vector<std::vector<std::pair<ptr_t,\
3738
\ ptr_t>>> graph;\n\n std::vector<std::vector<ptr_t>> eccs;\n\n TwoEdgeConnectedComponents(ptr_t\
@@ -45,21 +46,22 @@ data:
4546
\ low[u] = std::min(low[u], dfn[v]);\n }\n\n if (dfn[u] == low[u])\
4647
\ {\n eccs.emplace_back();\n eccs.back().push_back(u);\n in_stack[u]\
4748
\ = false;\n while (stk.top() != u)\n eccs.back().push_back(stk.top()),\
48-
\ in_stack[stk.top()] = false, stk.pop();\n stk.pop();\n }\n }\n\n void\
49-
\ solve() {\n for (size_t i = 0; i < graph.size(); ++i)\n if (!dfn[i])\n\
50-
\ tarjan(i, 0);\n }\n};\n\ntemplate <typename ptr_t = size_t> struct BiconnectedComponents\
51-
\ {\n ptr_t dfs_time = 0;\n\n std::stack<ptr_t> stk;\n std::vector<ptr_t> dfn,\
52-
\ low;\n std::vector<std::vector<ptr_t>> graph;\n\n std::vector<bool> is_cut;\n\
53-
\ std::vector<std::vector<ptr_t>> dccs;\n\n BiconnectedComponents(ptr_t n) :\
54-
\ dfn(n, 0), low(n, 0), graph(n), is_cut(n, false) {}\n\n void add_edge(ptr_t\
55-
\ u, ptr_t v) {\n graph[u].push_back(v);\n graph[v].push_back(u);\n }\n\
56-
\n void tarjan(ptr_t u, bool is_root) {\n dfn[u] = low[u] = ++dfs_time, stk.push(u);\n\
57-
\n if (is_root && graph[u].empty()) {\n dccs.emplace_back();\n dccs.back().push_back(u);\n\
58-
\ return;\n }\n\n ptr_t child = 0;\n for (const auto &v : graph[u])\
59-
\ {\n if (!dfn[v]) {\n tarjan(v, false), low[u] = std::min(low[u],\
60-
\ low[v]);\n if (low[v] >= dfn[u]) {\n if (++child > 1 || !is_root)\n\
61-
\ is_cut[u] = true;\n dccs.emplace_back();\n do\n\
62-
\ dccs.back().push_back(stk.top()), stk.pop();\n while (dccs.back().back()\
49+
\ in_stack[stk.top()] = false,\n stk.pop();\n\
50+
\ stk.pop();\n }\n }\n\n void solve() {\n for (size_t i = 0; i <\
51+
\ graph.size(); ++i)\n if (!dfn[i])\n tarjan(i, 0);\n }\n};\n\ntemplate\
52+
\ <typename ptr_t = size_t> struct BiconnectedComponents {\n ptr_t dfs_time =\
53+
\ 0;\n\n std::stack<ptr_t> stk;\n std::vector<ptr_t> dfn, low;\n std::vector<std::vector<ptr_t>>\
54+
\ graph;\n\n std::vector<bool> is_cut;\n std::vector<std::vector<ptr_t>> dccs;\n\
55+
\n BiconnectedComponents(ptr_t n)\n : dfn(n, 0), low(n, 0), graph(n), is_cut(n,\
56+
\ false) {}\n\n void add_edge(ptr_t u, ptr_t v) {\n graph[u].push_back(v);\n\
57+
\ graph[v].push_back(u);\n }\n\n void tarjan(ptr_t u, bool is_root) {\n \
58+
\ dfn[u] = low[u] = ++dfs_time, stk.push(u);\n\n if (is_root && graph[u].empty())\
59+
\ {\n dccs.emplace_back();\n dccs.back().push_back(u);\n return;\n\
60+
\ }\n\n ptr_t child = 0;\n for (const auto &v : graph[u]) {\n if\
61+
\ (!dfn[v]) {\n tarjan(v, false), low[u] = std::min(low[u], low[v]);\n\
62+
\ if (low[v] >= dfn[u]) {\n if (++child > 1 || !is_root)\n \
63+
\ is_cut[u] = true;\n dccs.emplace_back();\n do\n \
64+
\ dccs.back().push_back(stk.top()), stk.pop();\n while (dccs.back().back()\
6365
\ != v);\n dccs.back().push_back(u);\n }\n } else\n \
6466
\ low[u] = std::min(low[u], dfn[v]);\n }\n }\n\n void solve() {\n for\
6567
\ (size_t i = 0; i < graph.size(); ++i)\n if (!dfn[i])\n tarjan(i,\
@@ -86,7 +88,7 @@ data:
8688
isVerificationFile: true
8789
path: test/strongly_connected_components.test.cpp
8890
requiredBy: []
89-
timestamp: '2025-10-28 23:07:26+08:00'
91+
timestamp: '2025-10-29 20:09:11+08:00'
9092
verificationStatus: TEST_ACCEPTED
9193
verifiedWith: []
9294
documentation_of: test/strongly_connected_components.test.cpp

0 commit comments

Comments
 (0)