注意你的操作4的输出是不是把 printf("%lld\n",query(1,dfn[x],dfn[x]+siz[x]-1)%p); 打成了printf("%lld\n",query(1,dfn[x]+siz[x]-1,dfn[x])%p);,本蒟蒻调了两天半才调出来(
printf("%lld\n",query(1,dfn[x],dfn[x]+siz[x]-1)%p);
printf("%lld\n",query(1,dfn[x]+siz[x]-1,dfn[x])%p);