变量命名规范
严格下划线命名法, 适当缩写
行
r
o
w
row
row
列
c
o
l
col
col
体积
v
o
l
vol
vol或
v
v
v
前缀和
s
s
s
字符串如果已经有
s
s
s, 则命名为
s
t
r
str
str
动态规划数组
f
[
i
]
[
j
]
f[i][j]
f[i][j]
图论当中点对
(
u
,
v
)
(u, v)
(u,v), 如果有一个点命名为
u
u
u
两个变量或者字符串可以使用
a
a
a或者
b
b
b命名
k
m
p
kmp
kmp算法模式串匹配数组
n
x
t
nxt
nxt
左边界右边界
l
,
r
l, r
l,r
左儿子右儿子
l
s
,
r
s
ls, rs
ls,rs
查询的左右边界
q
l
,
q
r
ql, qr
ql,qr
栈
s
t
k
stk
stk, 栈顶指针
t
o
p
top
top
队列
q
q
q, 队头队尾
h
,
t
h, t
h,t
并查集数组
p
p
p
倍增数组/最近公共祖先数组
f
a
fa
fa
n
n
n代表数量,
m
m
m代表边数或者另一个变量
线段树结构体
t
r
tr
tr
森林
t
r
s
trs
trs
A
C
AC
AC自动机指针
p
t
r
ptr
ptr
测试数据数量
T
T
T
是否访问过数组
v
i
s
vis
vis
变量
v
a
l
val
val
临时变量
t
m
p
tmp
tmp
位置
p
o
s
pos
pos
操作数量op_num
小数点
p
t
pt
pt
比率
r
a
ra
ra
迭代器缩写
i
t
it
it
查询数量
q
q
q
候选变量
c
a
n
d
cand
cand
全局变量名必须大写
函数命名规范
深度优先搜索/广度优先搜索
d
f
s
,
b
f
s
dfs, bfs
dfs,bfs
多个测试用例函数
s
o
l
v
e
solve
solve
线段树懒标记下传push_down
d
f
s
dfs
dfs过程中根节点
u
u
u, 邻接节点
v
e
r
/
v
ver/v
ver/v
组合数
C
(
i
n
t
a
,
i
n
t
b
)
C(int\,a, int\,b)
C(inta,intb)
链式前向星写法, 每个节点的第一条边
h
e
a
d
head
head, 每条边的终点
e
d
ed
ed, 下一条边的索引位置
n
e
ne
ne, 边的索引
i
d
x
idx
idx
格式规范
函数与函数之间必须空一行
代码不同功能之间必须空一行
typedef
必须在const
上面
#define
在typedef
上面
f
o
r
for
for循环内部只有一个语句或者两个简单语句不许加大括号
大括号必须完整, 能用三元表达式不许使用
i
f
if
if
减少
i
f
if
if嵌套次数