随笔分类 -  数论

1
摘要:题目:给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)。(N<=10000000,M<=100000) 解法:1.欧拉筛O(n),数组近乎100KB;2.(我这题copy了数据范围肯定是有原因滴......)欧拉函数判断素数O(m log n),m 比 n 小啊,可以 阅读全文
posted @ 2016-11-17 17:08 konjac蒟蒻 阅读(242) 评论(0) 推荐(0)
摘要:题目:给定n*n的矩阵A,求A^k。 解法:利用矩阵乘法的定义和快速幂解答。注意用负数,但是数据太弱没有卡到我......(P.S.不要在 typedef long long LL; 前使用 LL......━━( ̄ー ̄*|||━━) P.S.在multi函数里,若将所有相乘的和先加起来不会爆 lo 阅读全文
posted @ 2016-11-17 15:07 konjac蒟蒻 阅读(164) 评论(0) 推荐(0)
摘要:题目:有一种图形叫做五角形圈。一个五角形圈的中心有1个由n个顶点和n条边组成的圈。在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形。这些五角形只在五角形圈的中心的圈上有公共的顶点。现在给定一个n五角形圈,你的任务就是求出n五角形圈的不同生成树的数目。还记得什么是图的生 阅读全文
posted @ 2016-11-16 18:59 konjac蒟蒻 阅读(306) 评论(0) 推荐(0)
摘要:题意:从编号为 1~N 的音阶中可选任意个数组成一个音乐片段,再集合组成音乐篇章。要求一个音乐篇章中的片段不可重复,都不为空,且出现的音符的次数都是偶数个。问组成 M 个片段的音乐篇章有多少种。答案取模1000000007(质数)。 解法:先将题目模型化:N 个数组成 M 种组合,且要求组合之间互不 阅读全文
posted @ 2016-11-16 08:43 konjac蒟蒻 阅读(407) 评论(0) 推荐(0)
摘要:中国剩余定理:定义为求解有 k 对关系:P % ai = bi,其中 ai 两两之间互质的 P 的最小正整数。 解法:1. 无论 ai 之间是否互质,这个方法都是通用的:将两两之间不互质就是把原来的关系式化为:P = bi (mod ai) → ai * x + bi = P,用拓展欧几里德求解同余 阅读全文
posted @ 2016-11-15 22:04 konjac蒟蒻 阅读(221) 评论(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蒟蒻 阅读(243) 评论(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蒟蒻 阅读(162) 评论(0) 推荐(0)
摘要:题意:定义 Fn 序列表示一串 <1 的分数,分数为最简分数,且分母 ≤n 。问该序列的个数。(2≤N≤10^6) 解法:先暴力找规律(代码见屏蔽处),发现 Fn 序列的个数就是 Φ(1)~Φ(n) 的和。于是用欧拉筛预处理就好了。 注意——求前缀和要用 long long 的类型。 阅读全文
posted @ 2016-11-15 20:31 konjac蒟蒻 阅读(237) 评论(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蒟蒻 阅读(378) 评论(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蒟蒻 阅读(277) 评论(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蒟蒻 阅读(175) 评论(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蒟蒻 阅读(403) 评论(0) 推荐(0)
摘要:题意:Elina看一本刘汝佳的书(O_O*),里面介绍了一种奇怪的方法表示一个非负整数 m 。也就是有 k 对 ( ai , ri ) 可以这样表示——m%ai=ri。问 m 的最小值。 解法:拓展欧几里德求解同余方程组的最小非负整数解。(感觉挺不容易的......+_+@) 先看前2个关系式: m 阅读全文
posted @ 2016-11-14 20:35 konjac蒟蒻 阅读(178) 评论(0) 推荐(0)
摘要:题意:已知2只青蛙的起始位置 a,b 和跳跃一次的距离 m,n,现在它们沿着一条长度为 l 的纬线(圈)向相同方向跳跃。问它们何时能相遇?(好有聊的青蛙 (΄◞ิ౪◟ิ‵) *)永不相遇就输出"Impossible"。(蠢得可怜 -_-!) 解法:用拓展欧几里德求同余方程的最小正整数解。(a+mx) 阅读全文
posted @ 2016-11-14 19:07 konjac蒟蒻 阅读(342) 评论(0) 推荐(0)
摘要:题意:有一个在k位无符号整数下的模型:for (variable = A; variable != B; variable += C) statement; 问循环的次数,若“永不停息”(←_←)*,就输出"FOREVER"。 解法:用拓展欧几里德方法求出gcd最大公因数,再利用同余性质转化,求同余 阅读全文
posted @ 2016-11-14 17:07 konjac蒟蒻 阅读(1957) 评论(0) 推荐(0)
摘要:原博是这个链接: 线性筛(欧拉筛) http://www.cnblogs.com/zhuohan123/p/3233011.html 我只拷贝了我在学的内容—— 一般的筛法(PPT里叫埃拉托斯特尼筛法,名字异常高贵)的效率是O(NlglgN)(其实很接近O(n)啊!),对于一些例如N=1000000 阅读全文
posted @ 2016-11-14 15:07 konjac蒟蒻 阅读(261) 评论(0) 推荐(0)
摘要:题意:给3个数M,A,B,求两个质数P,Q。使其满足P*Q<=M且A/B<=P/Q<=1,并使P*Q最大。输入若干行以0,0,0结尾。 解法:先线性筛出素数表,再枚举出P,二分出对应的最大的Q,得出最佳答案。 注意——1.第二个的代码是标准的欧拉筛,可求每个数的最小质因数; 2. 像第一个代码二分时 阅读全文
posted @ 2016-10-30 18:50 konjac蒟蒻 阅读(418) 评论(0) 推荐(0)
摘要:题意:N个编号为1~N的数,选任意个数分入任意个盒子内(盒子互不相同)的不同排列组合数。 解法:综合排列组合 Stirling(斯特林)数的知识进行DP。C[i][j]表示组合,从i个数中选j个数的方案数;S[i][j]表示Stirling数,i个数分成j份的方案数;P[i]表示P(i,i)全排列。 阅读全文
posted @ 2016-10-27 10:24 konjac蒟蒻 阅读(421) 评论(0) 推荐(0)
摘要:题意:有m个人有一张50元的纸币,n个人有一张100元的纸币。他们要在一个原始存金为0元的售票处买一张50元的票,问一共有几种方案数。 解法:(学习了他人的推导后~) 1.Catalan数的应用7的变形。(推荐阅读:http://www.cnblogs.com/chenhuan001/p/51571 阅读全文
posted @ 2016-10-26 21:55 konjac蒟蒻 阅读(549) 评论(0) 推荐(0)
摘要:题意:给一个n个点的图和一个n个点的树,求图和树上的点一一对应的方案数。(N<=17) 解法:1.在树的结构上进行tree DP,f[i][j]表示树上点 i 对应图上点 j 时,这个点所在子树的方案数。O(n^3)。 2.我们可以发现如果按这个定义进行DP,“一 一对应”的关系挺难保证。若枚举出全 阅读全文
posted @ 2016-09-16 14:41 konjac蒟蒻 阅读(517) 评论(0) 推荐(0)

1