题目大意

给定 $n$($1\le n\le 1000$)个正整数 $a_1, a_2, \dots, a_n$($a_i \le 10^{12}$),令 $s$ 为这 $n$ 个数之和。求
$$
\frac{s! } {\prod\limits_{1\le i\le n} a_i !} \bmod 10
$$

解法

中国剩余定理。

设上式中左边的商为 $x$,先分别求出 $x \bmod 2$ 和 $x\bmod 5$, 再利用中国剩余定理就可求得答案。

这个问题归结为:
对于素数 $p$ 和正整数 $n$,将 $n!$ 写成 $n! = ap^{k}$,且 $p$ 不是 $a$ 的因子。求 $a$ 和 $k$ 。

不难发现:
设 $n$ 的 $p$-进制展开式为
$$ n = b_0 + b_1 p + b_2 p^2 + \dots + b_r p^r \qquad ( 0 \le b_i \in \mathbb{Z} < p, b_r > 0) $$

则有
\begin{align}
k & = [n/p] + [n/p^2] + [n/p^3] + \dots + [n/p^r] \\
a & \equiv (p-1)!^{k} b_0! b_1! \dots b_r! \pmod{p} \label{Eq:2}
\end{align}

其中 $[x]$ 表示不超过 $x$ 的最大整数。
(令 $B = b_0 + b_1 + ... + b_r$,不难证明,$k$ 还可以写成 $k = \frac{n - B}{p-1}$)

根据 Wilson 定理,\eqref{Eq:2} 可写成
\begin{equation}
a \equiv (-1)^{k} b_0! b_1! \dots b_r ! \pmod{p}
\end{equation}

算法的复杂度为 $O(p + \log_p n)$ 。

从这个问题中积累的新模型
一、$\frac{A}{B}\bmod p$($B$ 能整除 $A$ 且 $p$ 是素数)的解法。
二、$n! \bmod p$($p$ 是素数) 的解法。


下面考虑:模数不是 $10$ 而是 $20$ 的情况下,此题如何求解。

仍循旧思路,采用中国剩余定理,我们需要求出 $x \bmod 4$;按旧办法求当然是可以的。注意:由于要预处理出 $0$ 到 $p-1$ 的阶乘,所以(对于旧思路)能否用 Wilson 定理并不影响复杂度。

如果模数的某个素因子的次数 $k$ 很高,求 $x \bmod p^k$ 的复杂度 $O(p^k + \log_{p^k} n)$ 就不能容忍了。很自然地,我们会考虑 $x\bmod p$ 与 $x\bmod p^k$ 之间的关系。
(留坑)

转载于:https://www.cnblogs.com/Patt/p/8166565.html

hihoCoder #1639 图书馆相关推荐

  1. 图书馆图书上架_【消息】暑假好去处,明光市图书馆很多新书上架啦......

    暑假即将来临, 各位小伙伴打算怎么度过这个暑假的呢? 宅在家里? 除了玩电脑.玩手机之类的电子产品之外 无所事事吗? 其实, 在炎热的夏天, 没有比图书馆更适合独坐的地方了. 一人.一书.一茶,一世界 ...

  2. 使用Oracle创建图书馆数据库(book reader lib loan表)

    -- 一.创建表 --  创建图书馆管理系统所涉及的表 --  创建产品销售系统所涉及的表 --  1.图书表book(bid,bname,price,qty) DROP TABLE book cas ...

  3. 使用Oracle创建图书馆数据库

    select * from bookinsert into book values('001','大型数据库技术',28.3,200,'是') insert into book values('002 ...

  4. hihoCoder 网络流四·最小路径覆盖

    题面带解释 hihoCoder感觉很好. 网络流的精华就是建图 #include<cstdio> #include<iostream> #include<algorith ...

  5. 光剑免费图书馆 Free Ebooks

    2019独角兽企业重金招聘Python工程师标准>>> 光剑免费图书馆 Free Ebook: 全球免费开放的电子图书馆 主页 光剑免费图书馆 Free Ebooks 道之所在,虽千 ...

  6. GOOGLE突破图书馆入口IP限制之技巧

    很多图书馆都要注册或要本地IP才能浏览或下载图书,有没有另类的快速办法能快速突破图书馆的入口,能随意地下载图书呢? 希望大家在GOOGLE里试试这个:"index of/ " in ...

  7. Tor 出口节点将运行在图书馆的电脑上

    Tor 匿名网络项目宣布与 Library Freedom Project合作,在图书馆的电脑上运行 Tor 出口节点.在Tor匿名网络中,出口节点是Tor用户访问目标网站的最后一个中继,也是法律风险 ...

  8. hihoCoder #1142 : 三分求极值

    #1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...

  9. hihocoder 后缀自动机专题

    一.后缀自动机基本概念的理解 1.首先后缀自动机的状态是由子串的endpos来决定的 子串的endpos是指一个子串可以在原字符串的哪些位置进行匹配, endpos构成的不同集合划分成不同的状态 关于 ...

最新文章

  1. 面试官:说一下限流、熔断、高可用?好多人一脸懵!
  2. R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来
  3. 王树彤IT美女七年磨一剑
  4. 机器学习领域中的六大误区
  5. JSP标准标签库JSTL总结
  6. 科大星云诗社动态20211108
  7. HDOJ 1056 HangOver
  8. 我也不知道该咋分类--莫队算法
  9. django框架预备知识
  10. Linux文件名中加入时间
  11. 夺命雷公狗---javascript NO:19 Navigator浏览器对象
  12. TensorFlow2.0:张量排序
  13. plc用c语言编写程序,plc编程和c语言编程的联系
  14. cpuv(cpuv2和v3有什么区别)
  15. Unity 关于制作UV动画,模拟管路气路流向示意图
  16. C++-从cpp文件到exe文件的过程
  17. 本地计算机如何使用代理服务器,自动设置代理ip
  18. javascript招式总结
  19. sublime_字体更换
  20. 计算机常用软件实验报告,计算机常用应用软件的安装和使用实验报告.doc

热门文章

  1. 每天一道LeetCode-----字符串乘法
  2. Xcode 9 新建的工程如何支持 iOS 8
  3. 总结xml配置spring-aop声明式事务配置与hibernate报错:** isno active spring和hibernate整合,原因会话工厂去路(到spring不仅仅是bean)错误
  4. Uart接口的详细解释
  5. S3C2440启动代码分析
  6. 计算器服务端/客户端
  7. 校门外的树+矩阵旋转
  8. 记录 之 tf.placeholder() 函数的意义及用法
  9. redis 源码阅读
  10. [BUUCTF-pwn]——[第五空间2019 决赛]PWN5