摘要:
// hh 表示队头,tt表示队尾的后一个位置int q[N], hh = 0, tt = 0; // 向队尾插入一个数q[tt ++ ] = x;if (tt == N) tt = 0; // 从队头弹出一个数hh ++ ;if (hh == N) hh = 0; // 队头的值q[hh]; // 阅读全文
摘要:
// hh 表示队头,tt表示队尾int q[N], hh = 0, tt = -1; // 向队尾插入一个数q[ ++ tt] = x; // 从队头弹出一个数hh ++ ; // 队头的值q[hh]; // 判断队列是否为空if (hh <= tt){ } 阅读全文
摘要:
// tt表示栈顶int stk[N], tt = 0; // 向栈顶插入一个数stk[ ++ tt] = x; // 从栈顶弹出一个数tt -- ; // 栈顶的值stk[tt]; // 判断栈是否为空if (tt > 0){ } 阅读全文
摘要:
vector, 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序 pair<int, int> first, 第一 阅读全文
摘要:
p[0] = 1;for (int i = 1; i <= n; i ++ ){ h[i] = h[i - 1] * P + str[i]; p[i] = p[i - 1] * P;} // 计算子串 str[l ~ r] 的哈希值ULL get(int l, int r){ return h[r] 阅读全文