摘要: 中国剩余定理:定义为求解有 k 对关系:P % ai = bi,其中 ai 两两之间互质的 P 的最小正整数。 解法:1. 无论 ai 之间是否互质,这个方法都是通用的:将两两之间不互质就是把原来的关系式化为:P = bi (mod ai) → ai * x + bi = P,用拓展欧几里德求解同余 阅读全文
posted @ 2016-11-15 22:04 konjac蒟蒻 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题意:给出 A%9973 和 B,求(A/B)%9973的值。 解法:拓展欧几里德求逆元。由于同余的性质只有在 * 和 + 的情况下一直成立,我们要把 /B 转化为 *B-1,也就是求逆元。 对于 B-1,P为模数9973,那么 B*B-1=1(mod P) → 把 B-1 看成 x ,就是 Bx+ 阅读全文
posted @ 2016-11-15 21:33 konjac蒟蒻 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意:问从(0,0)到(x,y)(0≤x, y≤N)的线段没有与其他整数点相交的点数。 解法:只有 gcd(x,y)=1 时才满足条件,问 N 以前所有的合法点的和,就发现和上一题—— 【poj 2478】Farey Sequence(数论--欧拉函数 找规律求前缀和) 求 x/y,gcd(x,y) 阅读全文
posted @ 2016-11-15 20:57 konjac蒟蒻 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题意:定义 Fn 序列表示一串 <1 的分数,分数为最简分数,且分母 ≤n 。问该序列的个数。(2≤N≤10^6) 解法:先暴力找规律(代码见屏蔽处),发现 Fn 序列的个数就是 Φ(1)~Φ(n) 的和。于是用欧拉筛预处理就好了。 注意——求前缀和要用 long long 的类型。 阅读全文
posted @ 2016-11-15 20:31 konjac蒟蒻 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题意:求奇质数 P 的原根个数。若 x 是 P 的原根,那么 x^k (k=1~p-1) 模 P 为1~p-1,且互不相同。 (3≤ P<65536) 解法:有费马小定理:若 p 是质数,x^(p-1)=1 (mod p)。这和求原根有一定联系。 再顺便提一下欧拉定理:若 a,n 互质,那么 a^Φ 阅读全文
posted @ 2016-11-15 20:08 konjac蒟蒻 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 题意就是求10^9以内的正整数的欧拉函数(Φ(n)表示<=n的与n互质的正整数个数)。 解法:用欧拉筛和欧拉函数的一些性质: 1.若p是质数,Φ(p)=p-1; 2.欧拉函数是积性函数,即若a,b互质,则Φ(ab)=Φ(a)*Φ(b); 3.若a,b不互质,则Φ(ab)=Φ(a)*b。 若 n≤10 阅读全文
posted @ 2016-11-15 19:37 konjac蒟蒻 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 题意:小Z有N只袜子,有不同的颜色。他有M个提问,问从编号为[L,R]的袜子中随机选一双同色的袜子的概率,用最简分数表示。 解法:经典的莫队算法——无修改、不强制在线(可离线)、状态转移可以一步完成。 步骤如下: 1.对询问按第一关键字的平方根 sqrt(x) 从小到大排序进行分组,再是各组中按第二 阅读全文
posted @ 2016-11-15 11:33 konjac蒟蒻 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意:一个 L*R 的网格里有 N 棵树,要求找一个最大空正方形并输出其左下角坐标和长。(1≤L,R≤10000, 0≤N≤100) 解法:枚举空正方形也就是枚举空矩阵,先要固定一个边,才好继续操作。(P.S.许多类型的题都是这样:先固定一个变量,再比较另外的变量。也就是我之前提到过的“部分枚举”。 阅读全文
posted @ 2016-11-15 11:10 konjac蒟蒻 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 题意:Kiki 有 X 个硬币,已知 N 组这样的信息:X%x=Ai , X/x=Mi (x未知)。问满足这些条件的最小的硬币数,也就是最小的正整数 X。 解法:转化一下题意就是 拓展欧几里德求解同余方程组了。我们可以得到 N 个方程:Mi*x+Ai=X。一些解释请看下面的代码。 阅读全文
posted @ 2016-11-15 08:38 konjac蒟蒻 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目:求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod a[2] = b[2], …, X mod a[i] = b[i], … (0 < a[i] <= 10)。 解法:先同上题一样用拓展欧几里德求出同余方程组的最后一个 阅读全文
posted @ 2016-11-15 08:30 konjac蒟蒻 阅读(369) 评论(0) 推荐(0) 编辑