题目大意:

给出n求sn,中括号代表向下取整。

为了方便表述,我们令a = (3k+6)!,b = (3k+7),令c = (a+1)/b也就是式子中的前半部分,d = a/b也就是式子中的后半部分。

观察c,d我们可以知道只有当c为整数时[c-[d]]为1,其他时候都是0,即只有当(a+1)%b==0时[c-[d]] == 1。

威尔逊定理告诉我们:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )。

首先我们要介绍一个定理。

拉格朗日定理:群的子群的规模能被群的规模整除,我们在这里只拿乘法群做出证明,可以知道,一个乘法群能够分解成一些相交点只有1的乘法子群。

假设一个规模为n(即模n+1)的乘法群其可以分成m个相交点只有一的乘法子群,我们提出任意两个乘法子群,a1,a2..ax,与b1,b2..by将两子群中元素两两配对,

   b1        b2     ...       by

a1   a1*b1   a1*b2          a1*by

a2

.

.

ax      ax*b1  ax*b2     ax*by

我们可以证明在这个合成的群中,任意两个数都不相等,反证法证明如下:

设两个元素分别为ai*bj,a(i+r)*b(j+k),如果两个元素相等的话我们可以得出

ai*bj = ai*ar*b(j+k)

bj = ar*b(j+k)除非ar为1否则这与我们定义的两个循环子群是相悖的;以上证明完毕。

可以很轻易的知道所有子群合并后的群必然包括了所有群的元素,可知将所有循环子群合并后群的规模为所有子群规模的乘积,也即所有循环子群的规模能够被群的规模所整除,循环子群合并所生成的群是群的子群,规模也能够被群的规模所整除,而所有循环群的子群也可以很轻易的知道,规模能够被循环群所整除,讲所有上述子群所形成的的新群也可以很轻易地知道包括了所有的群的子群的情况,以上拉格朗日定理证明完毕。

接下来证明威尔逊定理:

由于1~p-1能够构成呢模p的乘法子群,由逆元唯一性可知,每个元素都有有零一个元素使其两两相乘结果为一,除了1和一和x^2 ≡ 1(mod q)当x = q-1的时候成立,所以威尔逊定理成立。

hdu2937的更多相关文章

  1. HDU2937 YAPTCHA(威尔逊定理)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

随机推荐

  1. 阿里云CENTOS服务器挂载数据盘

    阿里云Linux云服务器数据盘默认是未做分区和格式化的,使用前需要先挂载数据盘.步骤如下: 1.查看数据盘 在没有分区之前,使用   1 df -h 2.命令,是无法查看到数据盘的,可以使用   1 ...

  2. Nginx源码研究一:NGINX模块启动

    Nginx 是一个轻量级,但是高性能的 HTTP 和 代理 服务器,也是一个 IMAP/POP3/SMTP代理服务器. 它的第一个版本0.1.0是由俄罗斯的工程师Igor Sysoev与2004年10 ...

  3. Delphi XE7下 Intraweb 发布为ASP.NET应用程序

    一.XE7下Intraweb开发这里就不说了,重点是在开发Intraweb时与ISAPI不同之处要选择 IW library,编译成DLL文件. 二.网站的配置 1.这是站点的物理路径,c:\site ...

  4. acdream暴力专场中的优美暴力

    F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Other ...

  5. Visual Studio调试之断点进阶篇

    Visual Studio调试之断点进阶篇 在上一篇文章Visual Studio调试之断点基础篇里面介绍了什么是断点,INT 是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常.程序中 ...

  6. Apple Pay 应用 demo --备用哦

    "iOS8.1就已经有这个功能了,只是木有现在这么的火,现在的趋势是要火的节奏,因此很多电商平台B2B,P2P,C2C,X2X都有可能需要这个屌丝的付款功能了,在此简单的研究一下." ...

  7. 转:CRect类 的介绍

    类CRect是对Windows结构RECT的封装,凡是能用RECT结构的地方都可以用CRect代替. 结构RECT表示一个矩形的位置和尺寸,其定义为: typedef struct tagRECT{ ...

  8. 转:BZERO()等的区别

    BZERO()等的区别 bzero  原型: extern void bzero(void *s, int n); 用法: #include <string.h> 功能:置字节字符串s的前 ...

  9. 使用AlertDialog创建对话框的大致步骤

    1.创建AlertDialog.Builder对象,该对象是AlertDialog的创建器.2.调用AlertDialog.Builder的方法为对话框设置图标.标题.内容等.3.调用AlertDia ...

  10. ZOJ 2760 How Many Shortest Path

    题目大意:给定一个带权有向图G=(V, E)和源点s.汇点t,问s-t边不相交最短路最多有几条.(1 <= N <= 100) 题解:从源点汇点各跑一次Dij,然后对于每一条边(u,v)如 ...