这个大部分都是猜测。。
若有猜错的,还请y总指出错误。
变量类
a
- 临时变量
- 做出发节点(图论中读入边时)
- 第三层
for
循环变量 - 做
dfs
传参(少) - 存整个数列
- 存偏移的横坐标(
a = x + dx[i]
)
b
- 临时变量
- 做到达节点(图论中读入边时)
- 第四层
for
循环变量 - 做
dfs
传参(少) - 存偏移的纵坐标(
b = y + dy[i]
)
c
- 做边权(图论中读入边时)
- 等价与
Case
,做处理的数据编号(题目要求输出当前测试数据编号) - 存组合数
- 做临时变量
d
- 做差分数组
- 存最短距离(在
Floyd
算法中) - 维护从当前节点到根节点的距离(在并查集中)
e
- 等价于
edge
,图论中存边
f
- 等价于
dp
数组,用于做状态转移 - 等价于
ST
数组,用于求做RMQ
g
- 做邻接矩阵,用于存图
- 等价于
map
,用于存地图
h
- 等价于
height
,存高度 - 等价于
head
,做链表、邻接表时 - 等价于
hash
,做哈希数组
i
- 第一层
for
循环变量(index
)
j
- 第二层
for
循环变量
k
- 第三层
for
循环变量 - 做
dfs
传参(当前所选择的数字个数) - 做快速幂传参(幂次)
l
- 存区间长度、字符串长度(大部分时候用
len
) - 等价于
left
,存区间左端点(区间dp
、快排、归并等) - 存左儿子节点编号(
Treap
中)
m
(这个太多了。。只写比较重要的几个。。)
- 存边的总数量(读入图时)
- 存体积上限(背包问题时)
- 总的操作数量
n
(这个更多。。)
- 存读入数据的总数量
- 存数据范围上限(大写)
o
for
循环第四变量(非常少)
p
- 等价于
pos
,存当前节点下标(trie
中) - 存质数,代替
primes[i]
- 存
P
的n
次方(哈希中) - 做并查集
q
- 做队列
- 存整个数列(少)
r
- 等价于
right
,存区间右端点(区间dp
、快排、归并等) - 存右儿子节点编号(
Treap
中)
s
- 做前缀和数组
- 等价于
start
,存起点(图论中秋最短路时) - 做
dfs
传参(当前所选的数字和,当前所选的数字状态等)
t
- 等价于
tmp
,做临时变量 - 做读入测试数据数量(大写)
- 所取出的队头元素(各种广搜以及最短路中)
u
- 存当前节点
- 做
dfs
传参(当前所遍历到的节点编号,当前dfs
层数等) - 第四层
for
循环变量
v
- 代指某个数字,缩短变量名(
int &v=blalblabla
) - 取出对头中某个数字
w
- 等价于
weight
(这个哪都是,巨常用)
x
- 存一位位置
- 存二维位置的横坐标
- 代指某个数字
y
- 存二维位置的纵坐标
z
(这个用到过嘛??)
alls
- 存所有数字(离散化中)
add
- 存所增加的偏移量
- 存所增加的数(离散化例题中)
ans
- 等价于
answer
,存答案
cows
- 存所有牛的属性(在写
usaco
的题的时候经常出现)
cnt
- 等价于
count
,计数器
dist
- 等价于
distance
,存起点到所有点的位置(各种最短路,bfs
时)
dx
,dy
- 在枚举
四个/多个
方向时用于存偏移量
dp
- 在动态规划中做状态转移数组(非常少,大部分时候用
f
)
depth
- 求每个节点的深度(在
倍增求LCA
中)
fact
- 存预处理的阶乘
fa
- 存每个节点往上跳 $2 ^ k$ 次跳到的父节点(在
倍增求LCA
中) - 存父节点(在
dfs
遍历整棵树时)
father
- 存父节点(在
dfs
遍历整棵树时)
heap
- 用于存堆
hh
- 等价于
head
,在用数组模拟队列时,做队头下标
idx
- 存下一个可用节点的下标(邻接表、链表、
trie
等)
it
for
循环变量(遍历STL
容器时)
infact
- 存预处理阶乘的逆元
left
- 临时记录左边的节点
len
- 存区间长度(区间
dp
时) - 存字符串长度
mod
- 存题目中要求模的数
maxv
- 存某个数组中的最大值
num/number
- 存某个数(在
leetcode
的题中较常出现)
nums
- 存一个数组(在
leetcode
的题中较常出现)
ne
- 等价于
next
,存下一个节点的下标(邻接表、链表中) - 存
KMP
的next
数组
op
- 存操作类型
pos
- 存某个位置
power
- 存某个数的某次幂
query
- 存询问的信息
rh
- 在部分图论题中存反向边
res
- 等价于
result
,存答案
right
- 临时记录右边的节点
root
- 存树的根节点(树、平衡树等)
size
- 维护数据结构的大小(堆等)
- 维护每棵子树大小(并查集中)
st
- 等价于
visited
,记录每个节点/状态
是否被遍历过
state
- 在枚举所有状态时记录每个状态
son
- 存每个子节点的信息(在做
trie
时)
sum
- 存前缀和数组
- 存所求的和
target
- 存目标值
tmp/temp
- 做临时数组
- 做临时变量
tr
- 等价于
tree
,存树(平衡树、线段树、树状数组、Trie
) - 等价于
triangle
,存三角形(计算几何)
tt
- 等价于
tail
,用数组模拟队列时,做队尾下标 - 等价于
top
,用数组模拟栈时,做栈顶下标
tot
- 等价于
total
,存情况总数量
ver
- 等价于
vertex
,用于取出图中的节点
weights
- 存所有物品的重量(少,一般用
w
)
width
- 存宽度
函数类
add
- 加边函数(存图中)
- 在某个位置加上一个数(树状数组中)
bfs
- 宽搜函数,一般为
int
型,在宽搜题目中直接输出。
Bellman_Ford
Bellman_Ford
求最短路
build
- 建线段树
- 建平衡树
- 建图
check
- 检查答案是否合法(常用于二分中)
calc
- 计算某个函数
down
- 在堆中用于将当前元素下传
dijkstra
dijkstra
求最短路
erase
- 删除堆中的某个值
- 删除平衡树中的某个值
- 删除链表中的某个位置的值
exgcd
- 用欧几里得算法求出某个数的逆元
finish
- 完成某个操作
foo
- 在语法基础课中用于做实验函数
find
- 离散化后找某个值
- 并差集中找某个节点的根节点
floyd
floyd
求最短路
f
- 求某个函数值(
function
) - 用于
A*/IDA*
中的估价函数
give
- 提供某段信息
gcd
- 求最大公约数
Gauss
- 高斯消元
g
- 用于
A*/IDA*
中的估价函数
get
(这个用法可太多了。。)
- 哈希后求出字符串中某段区间的哈希值
- 得到某样信息
get_dist
- 求出两点间的距离,多用于求平面中两点的欧氏距离。
get_phi
- 用于求出某个数的欧拉函数
get_num
- 求某个数
get_node
- 建立一个新节点(在平衡树中)
get_rank_by_key
- 在平衡树中通过排名查找数值
get_key_by_rank
- 在平衡树中通过数值查找排名
get_prev
- 在平衡树中查找前驱
get_next
- 在平衡树中查找后继
init
- 初始化(用于线性筛质数、
ST表
等)
insert
- 插入某个元素(堆中、平衡树中、链表中)
kruskal
kruskal
求最小生成树
merge
- 合并两段区间
merge_sort
- 用于归并排序
modify
- 删改某段值(线段树中)
prim
prim
求最小生成树
pushup
- 将平衡树、线段树中某个节点的信息向上传
pushdown
- 将平衡树中某个节点的信息向下传
qmi
- 用于快速幂
query
- 查询某段区间的值(线段树中、树状数组中)
- 查询某个最值元素(
trie
中)
quick_sort
- 用于快速排序
remove
- 删改某个节点的信息
spfa
spfa
求最短路
sum
- 树状数组中查询某段区间的和
up
- 在堆中用于将当前元素上传
work
work
函数,用于执行某个工作。
zig
- 平衡树中将当前节点右旋
zag
- 平衡树中将当前节点左旋
还有
st
和ed
,表示 start 和 end。常用于区间问题中(贪心)。
不愧是 y 学家!
太强了!我想再补充一点:
n: 二维矩阵行数
m: 二维矩阵的列数
sz是不是也超级常用呀
好像是。
%%%%%
我想补充一个delta
dfn好像也没有~~
确实。有不完整。
但我还是希望保留原文中的不完整。以便后人考古。
z 可能是存三维坐标的 z 值吧()
真的完整......
我毕竟是一个y学家hhhh
哈哈哈 太强了!
!!抽风聚聚真的写了
嗯呐,看到那条消息之后第二天就写惹~
tql
就很猛
tql
哇塞y总来了耶QwQ
抽风yyds!
考古!
@yxc
qwq
膜