快速幂的奇怪想法

问题是你有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)$

posted @ 2019-03-04 21:51  Yuhuger  阅读(146)  评论(0编辑  收藏  举报