大概不会有像我这样的shaber犯这样错误吧。
struct Node { int l, r, val; } tr[N << 2 + N * 30];
如果你的结构命名是这样的,那么请修改为
struct Node { int l, r, val; } tr[(N << 2) + N * 30];
时刻警惕位运算优先级。