A:
对于上述整除式的一组解 (c,s) ,在 c≤a≤A 且 s≤b≤B 时,会被统计入答案,因此它对答案的贡献为 (A−c−1)(B−s−1) 。
在 s>x 时,注意到 s+xs>21 , c+xc<1,因此 k=s+xsc+xc<211=2 ,所以 k=1 。此时可得 c=s 。
记 p=min(n,m):
ans=ci=x+1∑p(n+1−i)(m+1−i)=i=x+1∑p(n+1)(m+1)−(n+m−2)i=x+1∑pi+i=x+1∑pi2=(n+1)(m+1)(p−x)−21(n+m+2)(p−x)(p+x+1)+61p(p+1)(2p+1)−61x(x+1)(2x+1)
在 s≤x 时,注意到 k=s+xsc+xc<s+xs1=ss+x=1+sx。
暴力枚举 s,k,复杂度为 ∑i=1xix 为调和级数,此时暴力枚举每组解,累加贡献即可,时间复杂度为 xlogx。
B:
我们发现两个点 u,v 在同一个点集的充分条件是:对于所有不是 u,v 的点 x,要么 u,v 与 x 之间均有直接连边,要么 u,v 与 x 之间均无直接连边。
容易想到哈希,每个点维护该点与别的点是否有直接连边。
而我们仅需讨论一下 u,v 是否存在边即可,我们如果直接维护这两个点是否有边也是可以做的,或者我们可以考虑同时维护 hashu=hashv 和 hashuxorvalv=hashvxorvalu,如果这两个点不在同一连通块,则这两个等式均不成立,否则一定只会成立其中一个。
时间复杂度 O(n)。
C:
牛魔酬宾
D:
牛魔酬宾
原题