快速乘_c/c++】的更多相关文章

一.题目背景 已知底数a,指数b,取模值mo 求ans = ab % mo 二.朴素算法(已知可跳过) ans = 1,循环从 i 到 b ,每次将 ans = ans * a % mo 时间复杂度O(b) void power(int a,int b,int mo) { int i; ans=; ;i<=b;i++) { ans*=a; ans%=mo; } } 三.快速幂  先讨论无需取模的 当b为偶数时:ab=a(b/2)*2=(a2)b/2 当b为奇数时:ab=a*ab-1=a*(a2)…
Problem   Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec Problem Description Input The input contains a single line consisting of 2 integers N and M (1≤N≤10^18, 2≤M≤100). Output Print one integer, the total n…
BUPT2017 wintertraining(15) #6F 题意 \(f(1)=a,f(2)=b,f(i)=2*(f(i-2)+f(i-1)+i^4)\) 给定n,a,b ,\(N,a,b < 2^{31}\),求f(n)% 2147493647. 题解 \[ f[i]=(f[i-1]+2*f[i-2]+i^4)*2\\ i^4=(i-1)^4+4*(i-1)^3+6*(i-1)^2+4*(i-1)+1 \] 我们可以构造出矩阵乘法 \[ \left[ \begin{matrix} f_{i…
https://nanti.jisuanke.com/t/31721 题意 有肉,鱼,巧克力三种食物,有几种禁忌,对于连续的三个食物:1.这三个食物不能都相同:2.若三种食物都有的情况,巧克力不能在中间:3.如果两边是巧克力,中间不能是肉或鱼.求方案数. 分析 将meat ,  chocolate,fish 用 0 ,1 , 2 表示. 对于 n 来说,我们只关注后两位,因为 若 n - 1 的所有方案解决的话,我们在 n - 1 的方案添加0, 1,2 就行,然后根据禁忌 去除不可能的方案.…
原文链接http://www.cnblogs.com/zhouzhendong/p/8109156.html 题目传送门 - BZOJ1951 题意概括 求 GM mod 999911659 M=∑i|nC(n,i) N,G<=109 题解 我们发现999911659是一个素数,设为p. 费马小定理:对于任意正整数a,和素数p,有 ap-1 Ξ 1 (mod p) 由此可得, GM Ξ GM mod (p-1) (mod p) 这个可以用快速幂搞定,现在的问题就是如何计算M 我们研究p-1这个数…
题目链接:http://47.93.249.116/problem.php?id=2182 题目描述 河神喜欢吃零食,有三种最喜欢的零食,鱼干,猪肉脯,巧克力.他每小时会选择一种吃一包. 不幸的是,医生告诉他,他吃这些零食的时候,如果在连续的三小时内他三种都吃了,并且在中间一小时 吃的是巧克力,他就会食物中毒.并且,如果河神在连续三小时内吃到相同种类的食物,他就会不开心. 假设每种类零食的数量都是无限的,那么如果经过n小时,让河神满意的零食吃法有多少种呢?(开心又不 会食物中毒的吃法)答案可能过…
God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him that some sequence of eating will make them poisonous. Every hour, God Water will eat one kind of food among meat, fish and chocolate. If there are 3 c…
https://codeforces.com/contest/1117/problem/D 题解:有一些魔法宝石,魔法宝石可以分成m个普通宝石,每个宝石(包括魔法宝石)占用1个空间,让你求占用n个空间的方法有几种,有不同数量的魔法宝石和不同分法的方法算不同的方法, 分析:根据一些猜想可以推出递推式f[n]=f[n-1]+f[n-m]  : 答案也比较好猜想,牺牲一个然后分解 m 个 然后就是简单的构造矩阵快速幂 或者使用无敌杜教 这里给出点杜教心得 , 有时候并不是只用给出8项 , 而是给的数据…
题目地址:https://www.nowcoder.com/acm/contest/136/J 解法一: 推数学公式求前n项和: 当k=1时,即为等差数列,Sn = n+pn(n−1)/2 当k≠1时,an+p/(k−1) = k(an−1+p/(k-1)),等比数列,Sn = (kn+1+(p−1)kn−(np+1)k+(n−1)p+1) / ((k-1)*(k-1)) 因为是除法取模,故除快速幂外还需逆元: Knowledge Point: 除法取模逆元:https://www.cnblog…
题目链接 题意 : 实际上可以转化一下题意 要求求出用三个不同元素的字符集例如 { 'A' .'B' .'C' } 构造出长度为 n 且不包含 AAA.BBB CCC.ACB BCA.CAC CBC 这其中任意一个字符串的方案数 分析 : 方法一 (BM 求线性递推) 直接暴力出前 10 项的答案.然后猜它其实可以由线性递推递推而来 丢进杜教的 BM 模板里面就可以直接求出第 N 项了 实际上这个可以不用猜.这种不包含某些串的题目 如果你做过类似的.就会知道实际上是可以构造出一个矩阵然后快速幂…