表达式

安利一下洛谷博客
【问题描述】

求表达式的值。

\[ \sum_{i=1}^{kp} i^{2p-1} \mod\ p^{2} $$,其中p为素数。 **【输入描述】** 一行两个整数k,p。 **【输出描述】** 一行一个整数表示答案。 **【样例】** 样例输入 1 3 样例输出 6 最~~喜欢~~这种题目了,简单明了,言简意赅,通俗易懂,清晰可见,一目了然,不拐弯抹角。。。 ## 但是 _真的不好做啊_ 。。。 此题用到了费马小定理,同余问题,二次展开式(实质上就是$(a+b)^{n}=$一大堆乱七八糟的东西,用了一个如此高级的东西),还有≡(这个叫恒等于,蒟蒻第一次见还以为是全等。。),这道题充分的发挥了**人类的智慧**,把$\sum$用的淋漓精致,反正我考试的时候~~肯定想不到~~ # 现在开始动工! 首先,我先把结论抛给大家 $$\sum_{i=1}^{p-1} i^{2p-1}\equiv \frac{p(p+1)}{2} (mod\ p^{2})\]

好!其中2p-1是奇数哦(题目已经有提示啦)!

现在开始证明这个结论。

把右边的2移到恒等于号的左边,

\[\sum_{i=1}^{p-1} i^{2p-1} + \sum_{i=1}^{p-1} i^{2p-1}\equiv (p+1)p (mod\ p^{2}) \]

可以理解吧。

再把\(\sum_{i=1}^{p-1} i^{2p-1}\)从后面往前求和(因为从前往后和从后往前都是一样的呀),就变成

\[\sum_{i=1}^{p-1} i^{2p-1} + \sum_{i=1}^{p-1} (p-i)^{2p-1}\equiv (p+1)p (mod\ p^{2}) \]

合并

\[\sum_{i=1}^{p-1} [i^{2p-1} + (p-i)^{2p-1}]\equiv (p+1)p (mod\ p^{2}) \]

开始二次项展开

\[(p-i)^{2p-1}= \]

\[p^{2p-1}-C(2p-1,1)p^{2p-2}i+...+C(2p-1,2p-2)pi^{2p-2}-i^{2p-1} \]

就这样,再与\(i^{2p-1}\)抵消,然后注意一点,因为有\((mod \ p^{2})\)所以,当p的指数大于等于2的时候就可以被抵消(2p-1,2p-2等都是奇素数,所以肯定都大于二呀),这么抵消后,最后剩下的就是

\[\sum_{i=1}^{p-1}C(2p-1,2p-2)pi^{2p-2} \]

易得

\[C(2p-1,2p-2)=C(2p-1,1) \]

又因为

\[C(2p-1,1)=2p-1 \]

所以

\[\sum_{i=1}^{p-1}(2p-1)pi^{2p-2}\equiv p(p+1) (mod\ p^{2}) \]

(这个式子很重要,以后会用到
两边式子都有p,同时除以p,注意\(mod\ p^{2}\)也要除以p,原式就变为

\[\sum_{i=1}^{p-1}(2p-1)i^{2p-2}\equiv (p+1) (mod\ p) \]

啊,松口气松口气,更难的来了

好吧对于大佬来说很简单费马小定理登场!
我们有

\[i^{p-1}\equiv 1 (mod\ p) \]

然后

\[2p-2=2(p-1) \]

所以

\[\sum_{i=1}^{p-1}(2p-1)(i^{p-1})^{2}\equiv (p+1) (mod\ p) \]

所以

\[\sum_{i=1}^{p-1}(2p-1)\equiv (p+1) (mod\ p) \]

哈哈哈哈额,好开心啊。

前方路长,继续!

因为现在左式求的值是个定值,所以原式变成\((p-1)(2p-1)\equiv (p+1)(mod\ p)\)
展开

\[2p^{2}-3p+1\equiv (p+1)(mod\ p) \]

因为每个都mod p

\[1\equiv 1(mod\ p) \]

原式成立!!

前面辣么多都是预处理,现在处理题目给出的式子。

\[\sum_{i=1}^{kp} i^{2p-1} \mod\ p^{2} \]

将题目中的i去除以p,得到的商和余数用i和j来表示,那么也就是\(i=ip+j\)(注意区分前面的i和后面的i不一样)

所以就很巧妙的把原来的式子转换成了

\[\sum_{i=0}^{k-1} \sum_{j=1}^{p-1} (ip+j)^{2p-1} \mod\ p^{2} \]

同样二次项展开,然后就可以转换成

\[\sum_{i=0}^{k-1} \sum_{j=1}^{p-1} [(2p-1)ipj^{2p-1}+j^{2p-1}] \mod\ p^{2} \]

乘法分配律

\[\sum_{i=0}^{k-1} \sum_{j=1}^{p-1} (2p-1)ipj^{2p-1}+\sum_{i=0}^{k-1} \sum_{j=1}^{p-1}j^{2p-1} \mod\ p^{2} \]

第二个项可以转化成(刚刚预处理时证明的公式

\[\sum_{i=0}^{k-1} \frac{p(p+1)}{2} \]

再转化成

\[\frac{kp(p+1)}{2} \]

第一个项则可以用我刚刚说很重要的公式
变成

\[\sum_{i=0}^{k-1} ip(p+1) \]

继续化简

\[\frac{k(k-1)}{2}p(p+1) \]

将两个式子整合,变成

\[\frac{kp(p+1)}{2}+\frac{k(k-1)p(p+1)}{2} \]

没有求和公式了吧
那么我们在合并同类项之后原式

\[\frac{k^{2}p(p+1)}{2} \]

传说中的O(n)算法!哈哈哈


你好,这里落花殇

posted @ 2019-08-23 18:37  天殇梦璃  阅读(154)  评论(0编辑  收藏  举报