这篇题解在极限情况下可以卡到O(n×Q)
本机实测在 Q 缩小20倍(20000)的情况下需要28秒才能跑完。
生成器如下
#include<cstdio>
int main(){
int n=50000;
printf("%d\n",n);
for(int i=1;i<=n;i++){
if(i%2)printf("%d ",1);
else printf("%d ",2);
}
puts("");
for(int i=2;i<=n;i++){
printf("%d %d\n",i-1,i);
}
int q=20000;
printf("%d\n",q);
for(int i=1;i<=q;i++){
printf("1 49999 1 2\n");
}
return 0;
}