1.堆若为空,不能执行q.pop(),否则会出错。
2.类似转圈的问题,x为当前位置,走y步,到达的地方是(x+y)%n,但是要特判x+y==n的情况。
3.定义大根堆时,如果还要加一个pair在里面,> >符号之间要空一格,否则会被认为是位运算。
4.在%一个数或者/一个数时,先要考虑这个数是否为0。
5.求双连通分量时next数组的下标从偶数开始,用^来判断,例如0和1对应,2和3对应,4和5对应,偶数^1为比它大1的奇数。
小技巧:1.把数字转化成ASCII码的字母或符号:例如char(48)是0,char(97)是a。
.2.多起点多终点的最短路问题:建立超级起点s对所有起点连一条权值为0的边,终点同理,只需跑一次最短路。