随笔分类 -  数论--快速幂&&矩阵快速幂

摘要:题目链接:https://ac.nowcoder.com/acm/contest/3002/J 题意:给出一个递推式: f[i]=f[i-2] * f[i-1] * ab。并且 f[1] = x , f[2] = y , 其中x,y,a,b<=1e12,求第n项f[n]。(n<=1e12) 思路: 阅读全文
posted @ 2020-02-07 15:27 Frank__Chen 阅读(215) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/885/B 题意:已知齐次线性式xn=a*xn-1+b*xn-2,已知a,b,x0,x1,求xn,n很大,n<=1010^6. 思路:矩阵快速幂模板题,构造矩阵t: 矩阵ans: 显然ans1=t×ans,ans1为: 阅读全文
posted @ 2019-08-17 20:58 Frank__Chen 阅读(198) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/992/A 题意:求出长度为n的字符串个数,字符串由A、C、G、T组成,其中A和C必须成对出现。 思路:我们规定: f[n][0]--长度为n的合法字符串个数 f[n][1]--长度为n的A为奇数个的字符串个数 f[n 阅读全文
posted @ 2019-08-16 17:10 Frank__Chen 阅读(229) 评论(0) 推荐(0)
摘要:链接:https://www.luogu.org/problemnew/show/P3390 题意:矩阵快速幂模板题,思路和快速幂一致,只需提供矩阵的乘法即可。 AC代码: 阅读全文
posted @ 2019-07-17 22:31 Frank__Chen 阅读(213) 评论(0) 推荐(0)
摘要:一般的快速幂并不适合模数大于int范围的情况,因为在乘法运算的过程可能会出现超出long long的情况出现。这个时候可以利用快速幂的思想使用快速乘,原理就是模拟乘法运算,将乘法运算分解成加法运算,再每次加的时候取模,具体实现类似快速幂,代码如下: 阅读全文
posted @ 2019-05-04 19:06 Frank__Chen 阅读(182) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/POJ-3761 题意:给出n和k,求通过k趟冒泡排序得到长为n的有序排列(元素为n个不同的数)的原排列有多少个。 思路: 先给出反序表的定义: 令bi(1<=i<=n)為位於i左邊但是大於i的元素個數,就能得到排列a1,a2,..., 阅读全文
posted @ 2019-05-04 18:15 Frank__Chen 阅读(224) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/548/B 题意:计算m/n小数点后k1位到k2位,1≤m≤n≤109,1<=k1<=k2<=109,0<=k2-k1<=105,T<=20。 思路:计算小数可以模拟除法一位一位地算,但需要把k1之前的计算出来,不然没 阅读全文
posted @ 2019-04-06 10:05 Frank__Chen 阅读(214) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problemnew/show/P1226 第一次学快速幂,将别人对快速幂原理的解释简要概括一下: 计算a^b时,直接乘的话计算次数为b,而快速幂则只需要log2(b)次,很实用。 快速幂有很多种解释,以下介绍两种: 一. 我们可以将b转换为二进 阅读全文
posted @ 2019-01-27 19:45 Frank__Chen 阅读(206) 评论(0) 推荐(0)