AcWing 1289. 序列的第k个数(快速幂 等差、等比数列的性质)
BSNY 在学等差数列和等比数列,当已知前三项时,就可以知道是等差数列还是等比数列。
现在给你 整数 序列的前三项,这个序列要么是等差序列,要么是等比序列,你能求出第 k 项的值吗。
如果第 k 项的值太大,对其取模 200907。
输入格式
第一行一个整数 T,表示有 T 组测试数据;
对于每组测试数据,输入前三项 a,b,c,然后输入 k。
输出格式
对于每组数据,输出第 k 项取模 200907 的值。
数据范围
1≤T≤100,
1≤a≤b≤c≤10^9,
1≤k≤10^9
输入样例:
2
1 2 3 5
1 2 4 5
输出样例:
5
16
快速幂的运用
题意:如题。
关于本题的思考:
一个数列,如果既是等差数列,有是等比数列,那么这个数列必然是恒等序列
证明:(利用等差、等比中项)
等差、等比对应两类情况
快速幂时间复杂度logb(b表示几次幂)
没什么好说的,利用公式求解,代码如下:
#include<bits/stdc++.h>using namespace std;
#define int long long
const int mod = 200907;
int t,a,b,c,k;int qmi(int a,int b)
{int res = 1;while(b){if(b&1) res = res * a % mod;b>>=1;a = a * a % mod;}return res;
}signed main()
{cin>>t;while(t--){cin>>a>>b>>c>>k;if(a+c==2*b) cout<<(a+(b-a)*(k-1)%mod)%mod<<endl;else if(a*c==b*b) cout<<a*qmi(b/a, k-1)%mod<<endl;}return 0;
}
AcWing 1289. 序列的第k个数(快速幂 等差、等比数列的性质)相关推荐
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 97. 约数之和:递归、快速幂
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 快速幂参考笔者的这篇博文: 算法刷题-数论-组合数.快速幂.逆元.递推求组合数.逆元求组合数 约数之和参考笔者的这篇博文: 算法刷题 ...
- bzoj 4818: [Sdoi2017]序列计数(DP+矩阵快速幂)
4818: [Sdoi2017]序列计数 Time Limit: 30 Sec Memory Limit: 128 MB Submit: 769 Solved: 463 [Submit][Stat ...
- C/C++:计算N的N次方的个位数(巧用快速幂与模运算性质)
题目描述(源自杭电OJ): 相关数学知识一:取模运算的性质 a乘b的结果对p取模等于a对p取模的结果乘b对p取模的结果再整体取模于p,详见下图 证明过程如下: 相关数学知识二:快速幂运算 以求a的b ...
- 数论(二)快速幂 (矩阵快速幂)等比数列求和 最大公因数和最小公倍数
快速幂 1.快速幂用于快速计算a的b次方,时间复杂度是O(log2b) 2.用于a和b比较大小的情况,常用的快速幂是带模快速幂 3.分析一个例子: 3 15=? 15=(1111)2 3e1 * ...
- 【数学专题】 筛质数、分解质因数和快速幂
筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...
- 面试题 17.09. 第 k 个数[小顶堆][动态规划]
思路 暴力搜索 因为要求的数只含3\5\7这三个素因子,因此只需判断将每个数除3/5/7除尽后是否为1,从而判断是不是所要求序列中的一个数. 超时 代码如下: class Solution {publ ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂
信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...
- Codeforces 1106F Lunar New Year and a Recursive Sequence 矩阵快速幂,原根转化模意义下对数,BSGS
文章目录 题意 题解 对数法转指数线性递推 原根与模意义下求对数 拔山盖世! 最终步骤 Problem Origin 狠搞了一个多星期,做出来之后仍然一知半解,写个博客重理思路. 题意 定义序列fff ...
- 15年第六届蓝桥杯第九题_(矩阵快速幂优化的动态规划)
垒骰子 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体. 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的 ...
最新文章
- 使用 EOLINKER 进行接口测试的最佳路径 (下)
- 【译】TCP Implementation in Linux
- SQL 批量插入有标识列的数据
- 沈阳招聘.NET(C#)高级软件工程师
- 一个(伪)MaterialDesign风格的博客园皮肤
- 随想录(写给8-10年工作经验的同学)
- blender怎么移动骨骼_宝宝偏头怎么办?千万别错过这个矫正“黄金期”!
- 计算机 信息安全常识
- 大话设计模式--抽象工厂模式 Abstract Factory -- C++实现实例
- [NLP]OpenNLP文档分类器的使用
- 理解泰勒中值定理1的证明过程的两个影响理解的简单隐含推导
- TweenMax学习小计
- 世界上程序员最好的学习法:费曼学习法
- ajax执行先后顺序
- 6-2 抽象类Shape (10 分)
- JAVA-------计算机基础与准备阶段
- 静态包含和动态包含的区别
- 晨山资本王志飏:万物智联时代,智能企业的创新路径
- centos7 nginx安装
- 阿里P7测试员晒工资条,看完狠狠扎我心