51NOD1690 区间求和2

版权声明: https://blog.csdn.net/qq_16267919/article/details/81981370

1690 区间求和2
记s[i]为1~i中质数的个数(这里认为2不是质数),则a[i]和a[j]对答案的贡献为a[i]*a[j]*s[i+j-1]-a[i]*a[j]*s[j-i]
对于前一部分考虑每一个s[k]要乘以的a[i]*a[j]的总和,即i+j-1要等于k,这里可以用fft维护。s[j-i]的部分类似,可以将序列翻转后再求卷积。需要注意的是这里的k只可能是偶数。
Code

猜你喜欢

转载自blog.csdn.net/qq_16267919/article/details/81981370