memset。long long 不要 %d。long long 不要 %d。long long 下 1<<i 要写成 1ll<<i。return c。nxt 时 i 从 2 开始。h[l-1]*p[r-l+1] 要取模。dfs 调用是 dfs(n),不是 dfs[n]。for(int j=head[i];j;j=e[j]=nxt) 不是 for(int j=head[i];j;j=e[i].nxt)。i<=2*n。printf(0) 是错误的,但是 printf("0") 是正确的。mid 不要开 int 类型。l<r,不是 i<r。l<r,不是 i<r。eps 不要开太小。cnt 后就不要枚举到 cnt 加新边了。尤其是 Tarjan。now==n+1 后要 return。add 函数就不能写 now<=n 了,要写 now<=len(其中 len 为值域)。(now<<1)|1 而不是 now<<1。tr[now<<1]+=tag[now<<1](会导致答案过大)。应该是 tr[now<<1]+=tag[now]。return tr[now] 再 pushdown。long long 类型极小值不要赋成 −263+2,可以是 −1145141919810。因为上一个容易爆掉。tr[now]=y 不是 tr[x]=y。pushdown 完了标记要清空。query 要写 pushdown。printf。vector 但是 vector 里没有元素会 RE。r-l+1 不是 r-l。dp 数组不要写成 d 数组。for(int j=1;j<=n;i++)。dfs 不要写混。cin。希望大家在考场上不要犯这些错,rp++。