一本通 1615:【例 1】序列的第 k 个数
一本通 1615:【例 1】序列的第 k 个数
传送门
思路
输入一个序列的前三个数并求出这个序列的第K项,这个数列不是等比序列就是等差数列,等差数列比较好判断,如果序列中\(a_{i+2}-a_{i+1}=a_{i+1}-a_{i}\),那他肯定是等差数列,然后根据通项式\(a_{n}=a_{1}+{n-1}*d就可以求出第N项\)(\(d\)为一个常数,\(d=a_{i}-a_{i-1}\)).至于剩下的就一定是等比数列了,但求第N项的时候,\(a_{n}=a_{1}*q^{n-1}\),求q的n-1次方需要使用快速幂
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,c,k,d,res;
ll t;
const ll M=200907;
ll quickpower(ll a,ll b) {
ll ret=1;
while(b) {
if(b&1)ret=(ret*a)%M;
b>>=1;
a=a*a%M;
}
return ret;
}
int main() {
scanf("%lld",&t);
while(t--) {
cin>>a>>b>>c>>k;
if((c-b)==(b-a)) {
d=(b-a)%M;
res=(a+(k-1)%M*d)%M;
} else {
d=(b/a)%M;
res=a%M*quickpower(d,k-1)%M;
}
cout<<res<<"\n";
}
return 0;
}
一本通 1615:【例 1】序列的第 k 个数的更多相关文章
- AcWing 1289. 序列的第k个数
BSNY 在学等差数列和等比数列,当已知前三项时,就可以知道是等差数列还是等比数列. 现在给你 整数 序列的前三项,这个序列要么是等差序列,要么是等比序列,你能求出第k项的值吗. 如果第k项的值太大, ...
- 信息学奥赛一本通 提高篇 序列第k个数 及 快速幂
我是传送门 这个题首先是先判断是等差还是等比数列 等差的话非常简单: 前后两个数是等差的,举个栗子: 3 6 9 12 这几个数,(我感觉 1 2 3 4并说明不了什么) 每次都加3嘛,很容易看出,第 ...
- 序列内第k小查询(线段树)
最近请教了一下大佬怎么求序列内第k大查询,自己又捣鼓了一下,虽然还没有懂得区间第k大查询,不过姑且做一个记录先吧 因为每个元素大小可能很大而元素之间不连续,所以我们先离散化处理一下,程序中的ori[ ...
- 笔试算法题(03):最小第K个数 & 判定BST后序序列
出题:输入N个整数,要求输出其中最小的K个数: 分析: 快速排序和最小堆都可以解决最小(大)K个数的问题(时间复杂度为O(NlogN)):另外可以建立大小为K的最大堆,将前K个数不断插入最大堆,对于之 ...
- ch1_5_2求无序序列中第k小的元素
import java.util.Arrays; import java.util.PriorityQueue; public class ch1_5_2求无序序列中第k小的元素 { public s ...
- 1979 第K个数
1979 第K个数 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个长度为N(0<n<=10000) ...
- codevs 1979 第K个数
时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字 ...
- codevs——1979 第K个数
1979 第K个数 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定一个长度为N(0<n<=10 ...
- CODEVS——T1979 第K个数
http://codevs.cn/problem/1979/ 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descript ...
随机推荐
- HTTP之网关的分类
网关的分类 ========================摘自<HTTP权威指南>============================= 1. HTTP/*:服务器端Web网关 请 ...
- centos7上配置mysql8的双主互写
注意:1.主库1:10.1.131.75,主库2:10.1.131.762.server-id必须是纯数字,并且主从两个server-id在局域网内要唯一. [主节点1]vi /etc/my.cnf[ ...
- AngularJS入门Demo
1 :表达式 <html> <head> <title>入门小Demo-1</title> <script src="angular.m ...
- 集合类源码(六)Map(HashMap, Hashtable, LinkedHashMap, WeakHashMap)
HashMap 内部结构 内部是一个Node数组,每个Node都是链表的头,当链表的大小达到8之后链表转变成红黑树. put操作 final V putVal(int hash, K key, V v ...
- [Python学习笔记-007] 使用PyEnchant检查英文单词
最近在教儿子做自然拼读,跟他玩了一个单词游戏,就是利用简单的枚举找出适合小朋友学习的两个字母的单词.人工找寻难免有疏漏之处,这里使用PyEnchant给出一个简单的脚本. 01 - foo.py #! ...
- ImageView的adjustViewBounds属性
adjustViewBounds属性的定义如下: 调整ImageView的边界,使得ImageView和图片有一样的宽高比 这个属性只有在ImageView一边如宽度或高度固定,一边为wrap_con ...
- Spring Boot 静态页面跳转
本篇博客仅为自己提个醒:如何跳转页面而不麻烦控制器. 当我们创建 Spring Boot 项目时(勾选了 Thymeleaf 和 Web),目录结构会是如下: 其中图二是我创建了一个 h ...
- .NetCore打包docker镜像
1..NetCore 项目打包成Docker 镜像 1.1创建一个.NetCore web项目 项目名为 testmvc 此处用的是.NetCore2.1版本 1.2并且在program里面设置 ...
- Centos7安装pip或pip3
1.使用Python2安装pip wget wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip- ...
- 使用tcpdump监控http流量
使用tcpdump监控http流量,具体内容包括:http request,http response,http headers以及http message body. 监控本机http流量 tcpd ...