时间开那么大空间开那么小,我不好说,这数据强的离谱。
调了一上午
MLE 的把所有改成 int
,但是跟类欧有关的改成 long long
。
WA 的先试试修改离散化,再试试各种爆 int
的情况
RE 的空间稍微开大一点。
只 A 了 #1 #5 和 HACK 的代码多半离散化错了,把所有询问的 l,r 加 1 减 1 全部塞到离散化数组就行。
线段树有些值没必要存,尽可能减小这方面的空间。
最重要的一点,如果你爆 long long
了,看一下你类欧里面的引用的值 a,b,把他们约分一下就行了。
long long sum(int A,int B,int L,int R){
int g=gcd(A,B);
return 1ll*(R-L+1)*(R-L+2)/2*A-1ll*B*solve(A/g,0,B/g,R-L+1);
}