![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
51k
Fighting!!!
展开
-
利用逐次平方法快速求幂
利用逐次平方法可以快速求幂,这里不局限于数的幂,但以数的幂来举例说明。要求ak,如果直接用a连乘k次,复杂度比较大。如果把k写成如下形式:k = u0 + 2u1 + 22u2 + … + 2rur, ui = 0 或 1.然后制作模a的幂次表:a1 = A0, a2 = (a1)2 = A02 = A1, … a2r = (a2r-1)2 = Ar-12 = Ar.于是ak = A0u原创 2016-04-28 23:02:37 · 1041 阅读 · 0 评论 -
求解x=a^b(mod m)
本文致力于解决如下问题:求解x≡ab(mod m),其中a,b,m都是正整数。如果b足够小,则可直接用逐次平方法求解,如果你不知道逐次平方法,可以先看这里。所以这里假设b足够大(这不是说是一个64位整数,而是可以上百上千位的一个数),大到逐次平方法也已不足以快速出解。用素数探路的思想,先假设m是素数,那么要么 a 与 m 互素,要么 m|a。前者可利用费马小定理,令 b = k(m-1) + b′,原创 2016-04-28 23:18:34 · 1465 阅读 · 0 评论 -
放棋子
http://acm.zzu.edu.cn:8000/problem.php?cid=33&pid=0 Description 给你一个N*N的矩阵,每行有一个障碍(用1表示),数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。Input 第一行一个N,接原创 2016-05-01 11:09:45 · 312 阅读 · 0 评论