forked from Cu-OH-2/competitive-programming-templates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
模板.tex
314 lines (227 loc) · 8.69 KB
/
模板.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
% 宏包与环境
\documentclass[twocolumn,a4]{article} %两栏,A4大小
\usepackage{xeCJK} % 中文支持
\usepackage{amsmath, amsthm}
\usepackage{listings,xcolor} %插入代码
\usepackage{geometry} % 设置页边距
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage{fancyhdr} % 自定义页眉页脚
\setsansfont{Consolas} % 设置英文字体
\setmonofont[Mapping={}]{Consolas} % 英文引号之类的正常显示,相当于设置英文字体
\geometry{left=1cm,right=1cm,top=2cm,bottom=0.5cm} % 页边距
\setlength{\columnsep}{30pt} %两栏之间的间距大小
\setlength\columnseprule{0.4pt} % 分割线
% 页眉、页脚设置
\pagestyle{fancy}
\lhead{Cu\_OH\_2}
\chead{\CJKfamily{hei} 算法竞赛个人模板}
\rhead{\CJKfamily{hei} 第 \thepage 页}
\lfoot{}
\cfoot{}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
% 代码格式设置
\lstset
{
language = C++,
breaklines = true,
captionpos = b,
tabsize = 4,
frame = shadowbox,
columns = fullflexible,
commentstyle = \color[RGB]{0,128,0},
keywordstyle = \color[RGB]{0,0,255},
basicstyle = \scriptsize\ttfamily,
stringstyle = \color[RGB]{148,0,209}\ttfamily,
rulesepcolor = \color{red!20!green!20!blue!20},
showstringspaces = false,
}
% 标题设置
\title{\CJKfamily{hei} \bfseries 算法竞赛个人模板}
\author{Cu\_OH\_2}
\renewcommand{\today}{\number\year 年 \number\month 月 \number\day 日}
\begin{document}
% 生成标题
\begin{titlepage}
\maketitle
\end{titlepage}
% 生成目录
\newpage
\pagestyle{empty}
\renewcommand{\contentsname}{目录}
\tableofcontents
% 初始准备
\newpage
\clearpage
\newpage
\pagestyle{fancy}
\setcounter{page}{1} %从当前页开始计算页数
\section{通用}
\subsection{基础框架}
\lstinputlisting{通用/答题框架.cpp}
\subsection{实用代码}
\lstinputlisting{通用/实用代码.cpp}
\subsection{注意事项}
\lstinputlisting{通用/注意事项.cpp}
\section{动态规划}
\subsection{单调队列优化多重背包}
\lstinputlisting{动态规划/单调队列优化多重背包.cpp}
\subsection{二进制分组优化多重背包}
\lstinputlisting{动态规划/二进制分组优化多重背包.cpp}
\subsection{动态DP}
\lstinputlisting{动态规划/动态DP.cpp}
\section{字符串}
\subsection{KMP算法}
\lstinputlisting{字符串/KMP算法.cpp}
\subsection{扩展KMP算法}
\lstinputlisting{字符串/扩展KMP算法.cpp}
\subsection{字典树}
\lstinputlisting{字符串/字典树.cpp}
\subsection{AC自动机}
\lstinputlisting{字符串/AC自动机.cpp}
\subsection{后缀自动机}
\lstinputlisting{字符串/后缀自动机.cpp}
\subsection{回文自动机}
\lstinputlisting{字符串/回文自动机.cpp}
\subsection{Manacher算法}
\lstinputlisting{字符串/Manacher算法.cpp}
\subsection{最小表示法}
\lstinputlisting{字符串/最小表示法.cpp}
\subsection{字符串哈希}
\lstinputlisting{字符串/字符串哈希.cpp}
\section{数学}
\subsection{快速幂}
\lstinputlisting{数学/快速幂.cpp}
\subsection{矩阵快速幂}
\lstinputlisting{数学/矩阵快速幂.cpp}
\subsection{矩阵求逆}
\lstinputlisting{数学/矩阵求逆.cpp}
\subsection{排列奇偶性}
\lstinputlisting{数学/排列奇偶性.cpp}
\subsection{组合数递推}
\lstinputlisting{数学/组合数递推.cpp}
\subsection{线性基}
\lstinputlisting{数学/线性基.cpp}
\subsection{高精度}
\lstinputlisting{数学/高精度.cpp}
\subsection{连续乘法逆元}
\lstinputlisting{数学/连续乘法逆元.cpp}
\subsection{数论分块}
\lstinputlisting{数学/数论分块.cpp}
\subsection{欧拉函数}
\lstinputlisting{数学/欧拉函数.cpp}
\subsection{线性素数筛}
\lstinputlisting{数学/线性素数筛.cpp}
\subsection{欧几里得算法+扩展欧几里得算法}
\lstinputlisting{数学/欧几里得算法+扩展欧几里得算法.cpp}
\subsection{中国剩余定理}
\lstinputlisting{数学/中国剩余定理.cpp}
\subsection{扩展中国剩余定理}
\lstinputlisting{数学/扩展中国剩余定理.cpp}
\subsection{哥德巴赫猜想}
\lstinputlisting{数学/哥德巴赫猜想.cpp}
\section{数据结构}
\subsection{哈希表}
\lstinputlisting{数据结构/哈希表.cpp}
\subsection{ST表}
\lstinputlisting{数据结构/ST表.cpp}
\subsection{并查集}
\lstinputlisting{数据结构/并查集.cpp}
\subsection{笛卡尔树}
\lstinputlisting{数据结构/笛卡尔树.cpp}
\subsection{树状数组}
\lstinputlisting{数据结构/树状数组.cpp}
\subsection{二维树状数组}
\lstinputlisting{数据结构/二维树状数组.cpp}
\subsection{线段树}
\lstinputlisting{数据结构/线段树.cpp}
\subsection{历史最值线段树}
\lstinputlisting{数据结构/历史最值线段树.cpp}
\subsection{动态开点线段树}
\lstinputlisting{数据结构/动态开点线段树.cpp}
\subsection{可持久化线段树}
\lstinputlisting{数据结构/可持久化线段树.cpp}
\subsection{李超线段树}
\lstinputlisting{数据结构/李超线段树.cpp}
\section{树论}
\subsection{LCA}
\lstinputlisting{树论/LCA.cpp}
\subsection{树的直径}
\lstinputlisting{树论/树的直径.cpp}
\subsection{树哈希}
\lstinputlisting{树论/树哈希.cpp}
\subsection{树链剖分}
\lstinputlisting{树论/树链剖分.cpp}
\subsection{树上启发式合并}
\lstinputlisting{树论/树上启发式合并.cpp}
\subsection{点分治}
\lstinputlisting{树论/点分治.cpp}
\section{图论}
\subsection{2-SAT}
\lstinputlisting{图论/2-SAT.cpp}
\subsection{Bellman-Ford算法}
\lstinputlisting{图论/Bellman-Ford算法.cpp}
\subsection{Dijkstra算法}
\lstinputlisting{图论/Dijkstra算法.cpp}
\subsection{Dinic算法}
\lstinputlisting{图论/Dinic算法.cpp}
\subsection{Floyd算法}
\lstinputlisting{图论/Floyd算法.cpp}
\subsection{Kosaraju算法}
\lstinputlisting{图论/Kosaraju算法.cpp}
\subsection{Tarjan算法}
\lstinputlisting{图论/Tarjan算法.cpp}
\subsection{圆方树}
\lstinputlisting{图论/圆方树.cpp}
\subsection{K短路}
\lstinputlisting{图论/K短路.cpp}
\subsection{SSP算法}
\lstinputlisting{图论/SSP算法.cpp}
\subsection{原始对偶算法}
\lstinputlisting{图论/原始对偶算法.cpp}
\subsection{Prim算法}
\lstinputlisting{图论/Prim算法.cpp}
\subsection{Kruskal算法}
\lstinputlisting{图论/Kruskal算法.cpp}
\subsection{Kruskal重构树}
\lstinputlisting{图论/Kruskal重构树.cpp}
\subsection{Hierholzer算法}
\lstinputlisting{图论/Hierholzer算法.cpp}
\section{计算几何}
\subsection{平面坐标旋转}
\lstinputlisting{计算几何/平面坐标旋转.cpp}
\subsection{平面最近点对}
\lstinputlisting{计算几何/平面最近点对.cpp}
\subsection{平面叉乘}
\lstinputlisting{计算几何/平面叉乘.cpp}
\section{杂项算法}
\subsection{普通莫队算法}
\lstinputlisting{杂项算法/普通莫队算法.cpp}
\subsection{带修改莫队算法}
\lstinputlisting{杂项算法/带修改莫队算法.cpp}
\subsection{莫队二次离线}
\lstinputlisting{杂项算法/莫队二次离线.cpp}
\subsection{整体二分}
\lstinputlisting{杂项算法/整体二分.cpp}
\subsection{三分}
\lstinputlisting{杂项算法/三分.cpp}
\subsection{离散化}
\lstinputlisting{杂项算法/离散化.cpp}
\subsection{快速排序}
\lstinputlisting{杂项算法/快速排序.cpp}
\subsection{枚举集合}
\lstinputlisting{杂项算法/枚举集合.cpp}
\subsection{CDQ分治+CDQ分治=多维偏序}
\lstinputlisting{杂项算法/CDQ分治+CDQ分治=多维偏序.cpp}
\subsection{CDQ分治+数据结构=多维偏序}
\lstinputlisting{杂项算法/CDQ分治+数据结构=多维偏序.cpp}
\section{博弈论}
\subsection{Fibonacci博弈}
\lstinputlisting{博弈论/Fibonacci博弈.cpp}
\subsection{Wythoff博弈}
\lstinputlisting{博弈论/Wythoff博弈.cpp}
\subsection{Green Hackenbush博弈}
\lstinputlisting{博弈论/Green Hackenbush博弈.cpp}
\end{document}