杭州赛区J:考虑实质上是求解 (a,b) = 1 且 a*b<=n的数对个数,枚举a,对b容斥。
trickgcd:考虑反向求解,即为ans[x] -= ans[t*x],注意到因为反向求所以余下的刚好为实际值。
Winter is here:同上容斥傻题,C(n,1) + 2C(n,2) +... + n*C(n,n) 可以用多项式 (x+1)^n 求导 x = 1得到。
gcdpower:枚举r,维护l从1~r-1的答案,可以注意到每次对于加入的ar,只可以作为原式中的ak,找到前面的ar的倍数,
用树状数组进行区间更新即可,对于i找到(ai,aj) = ak相当于 (ai/ak,aj/ak) = 1,用一个数组记下后缀aj/ak,对ai质因子进行容斥即可。
复杂度分析同上题。