问题是你有p个数,他们的和是n
现在输入q,让你输出q的$p_i$次方。
如果询问次数很多,p比较小,值域比较大,怎么快速做。
法一
直接快速幂 O(p log C)
法二
考虑将这p个数排序,然后差分,然后对差分数组排序,以此类推。
不断排序差分。
这样加上一定长度的预处理。
假设排序是O(p)的
应该可以做到
$O(kp+n^{frac {1}{k+1}})$的,其中k为任意正整数,表示差分次数+1。
UPD:好像可以直接前缀积,是我蠢了。
UPD2:好像又不能前缀积,是我蠢了*2。
UPD3:考虑BSGS复杂度$O(C^{0.5}+n)$