nyoj 1197——你会加吗?——————【快速幂、分治】
你会加吗?
- 描述
-
给出两个整数A和N,计算(A + A^2 + A^3 + …… + A^(N - 1) + A^N)% 666666。
- 输入
- 多组测试数据。
每组数据包含两个整数A,N(0≤A,N≤10^18)。 - 输出
- 输出(A + A^2 + A^3 + …… + A^(N - 1) + A^N)% 666666是多少,每组数据占一行。
- 样例输入
-
2 5
10 20 - 样例输出
-
62
110 解题思路:对于求解A+A2+A3+A4+A5+An/2+A(n/2+1)...+An。
我们总可以化成:当n%2==1,(A1+A2+A3...+An/2)+An/2*(A1+A2+A3+...An/2)+An。
即(A1+A2+A3...+An/2)*(An/2+1)+An。
当n%2==0,(A1+A2+A3...+An/2)+An/2*(A1+A2+A3+...An/2)。
即(A1+A2+A3...+An/2)*(An/2+1)。
然后就可以分治求解。#include<bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod=666666;
LL Pow(LL a,LL x){ //快速幂
LL ret=1;
while(x){
if(x&1)
ret=ret*a%mod;
a=a*a%mod;
x>>=1;
}
return ret;
}
LL calcu(LL a,LL n){ //分治
if(n==1)
return a;
LL ret=calcu(a,n/2);//分治部分的返回值
ret=ret*(1+Pow(a,n/2))%mod;
if(n%2==1) //n如果为奇数需再加上a^n
ret= (ret+Pow(a,n))%mod;
return ret;
}
int main(){
LL a,n;
while(scanf("%lld%lld",&a,&n)!=EOF){
LL ans= calcu(a%mod,n);
printf("%lld\n",ans);
}
return 0;
}
nyoj 1197——你会加吗?——————【快速幂、分治】的更多相关文章
- FZU 1752 A^B mod C(快速加、快速幂)
题目链接: 传送门 A^B mod C Time Limit: 1000MS Memory Limit: 65536K 思路 快速加和快速幂同时运用,在快速加的时候由于取模耗费不少时间TLE了 ...
- AcWing 225. 矩阵幂求和 (矩阵快速幂+分治)打卡
题目:https://www.acwing.com/problem/content/227/ 题意:给你n,k,m,然后输入一个n阶矩阵A,让你求 S=A+A^2+A^3.+......+A^k 思 ...
- nyoj 102 次方求模【快速幂】
次方求模 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100)每组测试只有一 ...
- POJ3233 Matrix Power Series(矩阵快速幂+分治)
Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. ...
- 瓷砖铺放 (状压DP+矩阵快速幂)
由于方块最多涉及3行,于是考虑将每两行状压起来,dfs搜索每种状态之间的转移. 这样一共有2^12种状态,显然进行矩阵快速幂优化时会超时,便考虑减少状态. 进行两遍bfs,分别为初始状态可以到达的状态 ...
- hdu3293(pell方程+快速幂)
裸的pell方程. 然后加个快速幂. No more tricks, Mr Nanguo Time Limit: 3000/1000 MS (Java/Others) Memory Limit: ...
- poj3233 题解 矩阵乘法 矩阵快速幂
题意:求S = A + A2 + A3 + … + Ak.(mod m) 这道题很明显可以用矩阵乘法,但是这道题的矩阵是分块矩阵, 分块矩阵概念如下:当一个矩阵A中的单位元素aij不是一个数值而是一个 ...
- poj 3070 && nyoj 148 矩阵快速幂
poj 3070 && nyoj 148 矩阵快速幂 题目链接 poj: http://poj.org/problem?id=3070 nyoj: http://acm.nyist.n ...
- C - Rikka with Badminton --- HDU 6425 快速幂加组合数学
---恢复内容开始--- 题目链接: https://vjudge.net/problem/1812693/origin 这题的mod运算很恶心,真的... 本题有正反两个思路,一个是正面求解其不能成 ...
随机推荐
- 微信第三方平台开头篇--MVC代码(第三方获取ticket和公众号授权)
微信公众号授权给开放平台 公众号授权给第三方平台的技术实现流程比较简单 这个步骤遗漏了开头获取第三方平台自己的accessToken 先说下流程 如何注册开放平台的第三方信息看截图 其他不说了,此文只 ...
- webservice不能序列化接口问题,返回值为IList或者参数为接口的解决办法。
1. webservice 不能返回泛型接口集合IList,解决办法如下链接: 参考资料:http://www.cnblogs.com/yinhaiming/articles/1379424.html ...
- 【leetcode 138. 复制带随机指针的链表】解题报告
方法一:递归 unordered_map<Node*,Node*> dict; Node* copyRandomList(Node* head) { if (!head) return h ...
- Size Assertion
Size Assertion每一个响应包含的字节大小,可以设置大小等于,大于,小于,不等于给定的字节数. Apply to:应用范围,一般勾选Main samle only即可. Response S ...
- React + Dva + Antd + Umi 概况
Dva 由阿里架构师 sorrycc 带领 team 完成的一套前端框架,在作者的 github 里是这么描述它的:"dva 是 react 和 redux 的最佳实践". Ant ...
- IIS发布ASP程序问题汇总
看异常位置,因为域的问题
- 题解 P1255 【数楼梯】
题目链接 好吧,承认python 轻松水过 代码奉上: n = int(input()) #定义,输入 a=1 #初始的变量赋值 b=1 n-=1 #我的毒瘤的循环不得不加上这句话 if n > ...
- luoguP4172 [WC2006]水管局长
https://www.luogu.org/problemnew/show/P4172 考虑倒序处理所有操作 先把不会被删掉的边加入图中,LCT 维护最小生成树,再倒序插入每一条边,如果边的 ( l, ...
- [Swift]八大排序算法(三):选择排序 和 简单选择排序
排序分为内部排序和外部排序. 内部排序:是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列. 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存 ...
- 八大排序算法的python实现(三)冒泡排序
代码: #coding:utf-8 #author:徐卜灵 #交换排序.冒泡排序 L = [1, 3, 2, 32, 5, 4] def Bubble_sort(L): for i in range( ...