个人的一些变量命名习惯
写在前面
个人认为,好的命名习惯可以让自己的代码更加易懂,所以在初学代码的时候就应该养成这种习惯。
既是可以让你将来回看自己代码时能快速看懂,也能方便别人能理解你的代码(毕竟有些命名习惯是共通的嘛)
我每次做题前的一个基本的框架:
一些变量名称:(用简写是因为我容易打错字啊啊 也有一部分是因为懒)
一般数组: a[N] (没错打起来特方便特顺手) e[N] (手搓邻接表带来的习惯)
结构体: Node , Point (题目要用坐标且Node已经被用了时)
坐标 :(x , y) (u, v)
题目输出结果:ans (answer的简写), res (result的简写) ,
计数 : cnt (count 的简写)
左右区间 :[ l , r ] [ s , t ] (s是start,t是terminate(终端))
标记数组 st[N] (situation) vis [N] (visited)
单个判断 f (flag)
动态规划数组名 dp (有时候也会用 f )
背包问题里: v[N](value), w[N](weight,或者所占体积), m(背包容量)
(bb一句,我个人觉得v更适合当value,虽然它也是体积volume的简写字母qwq,也许也可以尝试va[N] 表示value,vo[N]表示volume ?)
字符串 : s(没错就取首字母),如果涉及子串问题的话,子串名为p
字符:单个的话习惯用c / ch, 数组用 c
并查集 : 数组名会用 p(parent) 或者 f (father)
在用邻接表时(链式向前星?):
数组 e[N](存节点, 表示是几号节点), ne[N](next), w[N](weight,存边的权重), h[N](链表头head), idx (index,索引);
在要使用pair时:
typedef pair <int, int> PII;
#define x first
#define y second
这样在后续调用的时候可以直接 t.x , t.y 啦 我懒得打 first 和 second
啊啊暂时想不起来了,以后再补充吧 (不会忘的吧)