数学——数论
文章平均质量分 80
倚剑笑紅尘
教练,我想学kaldi!
展开
-
HDU4704Sum 费马小定理+大数取模
题目链接: hdu4704题目大意:给定一个数n 将其分解,Si 表示将n拆成i个数的方案数求sum( si ) 1分析:隔板原理, n个木棍,n-1个缝,分成1份则是C(n-1,0);分成2份则是C(n-1,1);分成3份则是C(n-1,2);...分成n份则是C(n-1,n-1);ans = sum( C(n-1,i) ) (0原创 2017-08-04 12:17:09 · 395 阅读 · 0 评论 -
poj3233 - Matrix Power Series (矩阵)
题目链接:题目大意:思路:Sk=A+ASn-1所以(A Sk-1)* (E E )=(A Sk) (0 A)即(A Sk)=(A A)*(E E)^(n-1)=(A 0)(E E)^(n) (0 A)原创 2017-08-05 17:43:41 · 221 阅读 · 0 评论 -
hdu-2157-How many ways?? (矩阵)(dp优化加速)
题目链接:题意:HDU2157How many ways??有一个有向图,有N个点,M条边,点的编号从0~N-1,然后有T组询问,每组询问是(A,B,k),问你从A点出发到B点恰好走k步的方案数。结果对1000取余。(NN,k思路:•有时候dp的递推式子也可以表示成常系数线性递推数列的形式,这时候就可以用矩阵快速幂进行优化了。一开始用dp的思路来思考,设dp原创 2017-08-05 18:21:04 · 323 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo dp+矩阵快速幂
题意:•在一个二维xoy第一象限平面上(即x,y必须保持非负),你一开始在原点(0,0),每一次可以从(x,y)往右跳到(x+1,y),也可以向右上角跳到(x+1,y+1),也可以向右下角跳到(x+1,y-1),然后还有n条平行于x轴的线段(a,b,c),分别在(a,c)-(b,c)上,当你的横坐标在[a,b]区间时,y坐标不能超过c,问有多少种方案到达(k,0)。结果对10^9+7取余原创 2017-08-05 21:10:16 · 245 阅读 · 0 评论 -
高斯消元原理
高斯消元是用来求线性方程组的解,行列式求值,或者矩阵求逆等等。主要有两个步骤:化行阶梯形矩阵和回带。高斯消元的时间复杂度为,以下代码中代表方程个数,代表未知数个数,数组用来判断哪些未知数是变元,数组用来存求得的解。 代码:#include #include #include #include #include using namespace std;const i原创 2017-08-06 20:29:51 · 321 阅读 · 0 评论 -
高斯消元基础题
题目:http://poj.org/problem?id=1222 题意:5*6矩阵中有30个灯,操作一个灯,周围的上下左右四个灯会发生相应变化 即由灭变亮,由亮变灭,如何操 作使灯全灭? 分析:这个问题是很经典的高斯消元问题。同一个按钮最多只能被按一次,因为按两次跟没有按是一样的效果。那么 对于每一个灯,用1表示按,0表示没有按,那么每个灯的状态的取值只能转载 2017-08-06 21:57:36 · 400 阅读 · 0 评论 -
[uoj 34 多项式乘法] FFT&NTT 模板
1. 题目链接[uoj 34 多项式乘法]2. 题意描述给你两个多项式,请输出乘起来后的多项式。 第一行两个整数 n 和 m,分别表示两个多项式的次数。第二行 n+1个整数,分别表示第一个多项式的0 到 n 次项前的系数。 第三行 m+1 个整数,分别表示第一个多项式的 0 到 m 次项前的系数。3. 解题思路模板测试题。转载 2017-08-27 10:51:43 · 306 阅读 · 0 评论 -
Gym - 100783C Golf Bot(FFT多项式相乘)
题目链接:点击打开链接题目大意:给出n个数a1,a2,....an,和m个数b1,b2,...bn,问b数组中有多少个数可以由a数组中一个或两个的和组成思路:构造两个相同的多项式,指数分别为a1,a2...an,系数表示存不存在(1或0),然后用FFT相乘,得到结果多项式,系数大于等于1的表示能够得到该项。指数表示某两个ai+aj(1所以将这些系数大于等于1的指数记录下来,这些都是原创 2017-08-27 11:01:32 · 652 阅读 · 0 评论 -
HDU 5950 Recursive sequence(构造矩阵+矩阵幂)——2016ACM/ICPC亚洲区沈阳站
题目链接:点击打开链接题目大意:求 f(n) = f(n−1)+2*f(n−2)+n4,其中f(1)=a,f(2)=b思路:首先一看这个题目,很容易想到构造矩阵:那么我们现在来分析一下怎么构造这个矩阵,那么 (n+1)4 = n4+4n3+6n2+4n+1 所以光 (n+1)4 这个矩阵就能构造出 5∗5 的一个矩阵来, 然后 f(n) = f(n−1)+2∗f原创 2017-08-28 19:53:51 · 368 阅读 · 0 评论 -
逆元
逆元(inv) 1.什么是逆元 当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法: 设c是b的逆元,则有b*c≡1(mod m); 则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m); 即a/b的模等于a*b的逆元的模; 逆元就是这样应用的; 2.求逆元的方法 (1).费马小定理 在是素数的情况下...转载 2018-04-19 00:20:57 · 346 阅读 · 0 评论 -
Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2) C.Alternating Sum(等比数列求和)
题目链接;点击打开链接题目大意:给出一个数列s,其中的元素为s1,s2,s3......sn。元素要么是1(用‘+’表示),要么是-1(用‘-’表示)这个数列以k个数为一个周期,且n能被k整除。给出两个数a,b,求题目思路:很显然,这个求和公式中,相邻两项的比值的绝对值都是确定,都是b/a。那么这道题首先想到的就是等比数列求和公式。但是因为si这个系数,可能是正,可能是负,所以不能直接等比数列求和...原创 2018-04-19 00:47:52 · 183 阅读 · 0 评论 -
2018牛客暑期多校第四场A Ternary String(推导公式+欧拉降幂)
题目链接:https://www.nowcoder.com/acm/contest/142/A题目大意:一个字符串只含有'0','1','2',在每一秒会在每个'1'后生成一个'0',每个'2'后面生成一个'1',并删除第一个字符:例如:字符串“210”的删除过程第0秒:210第1秒:1100第2秒:01000第3秒:10000第5秒:00000第6秒:0000...原创 2018-08-09 15:19:32 · 285 阅读 · 0 评论 -
LightOJ - 1132 Summing up Powers 矩阵快速幂
题目链接:题目大意:思路:根据二项式定理,我们可以得到: (n+1)k=C0knk+C1knk−1+C2knk−2+...+Ck−1kn+1于是可以构造变化矩阵: ⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜C0k00...01C1kC0k−10...00C2kC1k−1C0k−2...00C3kC2k−1C1k−2...00..................1原创 2017-08-05 16:30:04 · 258 阅读 · 0 评论 -
HDU 4565 -- So Easy! (矩阵幂模板)
题目链接:hdu4565题目要求这个得值但是取模前有更号,所以无法直接计算,我们发现015, (a-1)22, 0 31所以 0 | a+sqrt( b ) | 可得表达式:,由二项式展开可知等号右边一坨是整数并且加的数小于一,所以等式成立然后我们将 a+sqrt(b)看做一个整体,a-sqrt(b)看做一个整体,然后另p=a+sqrt(b)+a-sqrt(b)=2原创 2017-08-05 15:17:27 · 240 阅读 · 0 评论 -
Super A^B mod C (费马小定理的推广——欧拉定理)
题目链接:点击打开链接题意:求a^b mod c的值,a,c为long long,b可能非常非常大,需要用字符串。思路;首先求下b的值,如果b小于c的话不能用欧拉定理,直接快速幂即可。如果b非常非常大的话,就要用到欧拉定理。费马小定理的推广——欧拉定理•模数p从素数推广到一般整数n欧拉降幂公式我们需要先求欧拉函数,欧拉的递推式原创 2017-08-04 14:17:04 · 2783 阅读 · 2 评论 -
BZOJ 3884 上帝与集合的正确用法 (欧拉函数 找递推公式)
题目链接:bzoj3884参考博客:点击打开链接题意:求 222...modp 的值,多组询问。p≤107。题解: 考虑欧拉定理,当(a,p)=1时,aϕ(p)≡1(modp)。而由此可以很容易得出一个结论: 当x≥ϕ(p)时,有ax≡axmodϕ(p)+ϕ(p)(modp)回到本题,若令f(p)=222...modp,则转载 2017-08-04 15:11:20 · 336 阅读 · 0 评论 -
POJ2478_Farey Sequence【快速求欧拉函数】(积性函数筛)
题目链接:poj2478题目大意:给你一个数n,对于0 即求n的欧拉函数前缀和(2思路;欧拉函数:积性函数筛:需要处理三种情况1. f(p),p是素数(直接等于素数的值减1)2. f(p*i), 其中p不是i的约数,根据积性函数性质直接等于f(p)f(i) (即看上图片的第二条)3. f(p*i), 其中p是i的约数,需原创 2017-08-04 16:14:18 · 240 阅读 · 0 评论 -
POJ1845-Sumdiv (对A进行素因子分解+A^B的所有约数之和为+A^B的所有约数之和为+A^B的所有约数之和为)
转载出处:優YoU http://user.qzone.qq.com/289065406/blog/1309237394 题目链接:poj1845大致题意:求A^B的所有约数(即因子)之和,并对其取模 9901再输出。 解题思路:要求有较强 数学思维 的题应用定理主要有三个:要求有较强 数学思维 的题应用定理主要有三个:(1) 整数的唯一分解转载 2017-08-04 17:29:04 · 333 阅读 · 0 评论 -
poj1284 Primitive Roots:欧拉函数+原根
题目链接:poj1284题意:给出一个p(3,求这个数有多少个原根思路:何为原根?由费马小定理可知 如果a于p互质 则有a^(p-1)≡1(mod p)对于任意的a是不是一定要到p-1次幂才会出现上述情况呢?显然不是,当第一次出现a^k≡1(mod p)时, 记为ep(a)=k 当k=(p-1)时,称a是p的原根每个素数恰好有f(p-1)个原根(原创 2017-08-04 18:00:48 · 202 阅读 · 0 评论 -
poj3090 Visible Lattice Points(欧拉函数 莫比乌斯反演)
题目链接:题目大意:有一个n*n的二维格点,问在原点(0,0)处能看到多少个格点?(n组数据)n=5的情况,答案是21,如上图的21根线思路:结论就是,即最后能看到的格点数为接下来对这个题目简单分析一下。首先,题目主要是求从0,0能看到的点的个数。先考虑只有1×1的时候,三个点,根据图明显看出,只需要计算下三角,结果=下三角的个数×2再加1(斜率为1原创 2017-08-04 19:23:13 · 302 阅读 · 0 评论 -
SPOJ VLATTICE - Visible Lattice Points 莫比乌斯反演
做此提前可以先做二维的:点击打开链接题目链接:点击打开链接题目大意:•有一个n*n*n的三维格点,问在原点(0,0,0)处能看到多少个格点?(n组数据)思路:莫比乌斯反演!什么是莫比乌斯反演?求莫比乌斯的函数;int prime[maxn],mu[maxn];bool unprime[maxn];long long n;原创 2017-08-04 20:57:34 · 201 阅读 · 0 评论 -
一些普通的素数判断方法至素数判定Miller_Rabin 算法详解
素数判定Miller_Rabin 算法详解上次说好的要把素数判定和大数分解(见另一篇博文)的快速随机化算法解决了,于是乎今天就来解决,不得不说理解起来真的有困难。我只能大概的将思路理一下,若有错漏还请担待。转载自大佬的博客:点击打开链接首先相信有一些数学和编程经验的读者应该知道,最简单直观简单的素数判定方法就是试除法。对于判断数n是否是素数,我们从2开始一直到sqrt转载 2017-08-04 21:40:49 · 498 阅读 · 0 评论 -
大数因数分解Pollard_rho 算法详解
大数因数分解Pollard_rho 算法详解适用范围:给你一个大数n,将它分解它的质因子的乘积的形式。P.S. 在下面的论述中会使用到Miller_rabin和快速乘法和快速幂,如果有兴趣请看另一篇博文。不过其实你只需要知道Miller_rabin是判断一个数是否是素数。q_mul是求(a*b)% mod,q_pow是求(a^b) % mod即可。Mil转载 2017-08-05 00:04:16 · 4722 阅读 · 2 评论 -
POJ 1811 Prime Test(大素数判断和素因子分解)
题目链接:题目大意:•给出一个N(2如果是素数,输出Prime,否则输出N的最小素因子。思路:(miller素数判断&&pollar_rho大数分解)模板题kuangbin的模板数据比较大,只能先用Miller_Rabin算法进行素数判断。在用Pollard_rho分解因子。随机算法非常厉害~~~~~Orz 附上两个程序,作为模板: 程序一:原创 2017-08-05 00:45:06 · 355 阅读 · 0 评论 -
LOJ 1070 - Algebraic Problem(矩阵快速幂)
题目链接:点击打开链接题目大意:•告诉你p=a+b的值和q=ab的值,求(a^n+b^n)%2^64,(p,q,n都是32位有符号的数)思路:a^n+b^n=(a+b)(a^(n-1)+b^(n-1))-(a*b)(a^(n-2)+b^(n-2))如果另Sn=a^n+b^n。就可以求递推式 :Sn=pS(n-1)-q*S(n-2)即 (S2 S1)*(p 1)^(原创 2017-08-05 15:12:53 · 307 阅读 · 0 评论 -
HDU 1695 GCD (莫比乌斯反演)
题目大意:这题求[1,n],[1,m]gcd为k的对数。而且没有顺序。题目思路:莫比乌斯反演资料:http://wenku.baidu.com/view/542961fdba0d4a7302763ad5.htmlhttp://baike.baidu.com/link?url=1qQ-hkgOwDJAH4xyRcEQVoOTmHbiRCyZZ-hEJxRBQO8G0OurXNr6Rh...原创 2018-09-27 16:16:40 · 204 阅读 · 0 评论