Poj 3070 Fibonacci

Time Limit: 1000MS		Memory Limit: 65536K
Total Submissions: 26063		Accepted: 17394

文章目录

    • Description
    • 题意:
    • 题解:
    • 代码:

Poj 3070 Fibonacci

Description

In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 +
Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci
sequence are:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …

An alternative formula for the Fibonacci sequence is
在这里插入图片描述 .

Given an integer n, your goal is to compute the last 4 digits of Fn.

Input

The input test file will contain multiple test cases. Each test case consists of a single line containing n (where 0 ≤ n ≤ 1,000,000,000). The end-of-file is denoted by a single line containing the number −1.

Output

For each test case, print the last four digits of Fn. If the last four digits of Fn are all zeros, print ‘0’; otherwise, omit any leading zeros (i.e., print Fn mod 10000).

Sample Input

0
9
999999999
1000000000
-1

Sample Output

0
34
626
6875

Hint

As a reminder, matrix multiplication is associative, and the product
of two 2 × 2 matrices is given by
在这里插入图片描述 .

Also, note that raising any 2 × 2 matrix to the 0th power gives the
identity matrix:
在这里插入图片描述

题意:

其实就是求第x位斐波那契数列(记得mod10000),不过题目给你介绍了矩阵的相关知识,以及矩阵与斐波那契数列的联系,就是让你用矩阵快速幂来求斐波那契数列。

题解:

斐波那契数列的博客
我在这个博客里详细介绍了三种斐波那契数列的求法,其中就有矩阵快速幂的方法
所以我在这就不详细介绍,简单说说:
mul(a,b)是用来进行矩阵a与b的乘法运算
pow(mat a,ll n)//快速幂求矩阵a的n次幂

代码:

#include <iostream>  
#include <cstddef>  
#include <cstring>  
#include <vector>  
using namespace std;  
typedef long long ll;  
const int mod=10000;  
typedef vector<ll> vec;  
typedef vector<vec> mat;  
mat mul(mat &a,mat &b) 
{  mat c(a.size(),vec(b[0].size()));  for(int i=0; i<2; i++)  {  for(int j=0; j<2; j++)  {  for(int k=0; k<2; k++)  {  c[i][j]+=a[i][k]*b[k][j];//矩阵的运算法则 c[i][j]%=mod;  }  }  }  return c;  
}  
mat pow(mat a,ll n)  
{  mat res(a.size(),vec(a.size()));  for(int i=0; i<a.size(); i++)  res[i][i]=1;  while(n)  {  if(n&1) res=mul(res,a);  a=mul(a,a);  n/=2;  }  return res;  
}  
ll solve(ll n)  
{  mat a(2,vec(2));  a[0][0]=1;  a[0][1]=1;  a[1][0]=1;  a[1][1]=0;  a=pow(a,n);  return a[0][1];
}  
int main()  
{  ll n;  while(cin>>n&&n!=-1)  {  cout<<solve(n)<<endl;  }  return 0;  
}  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成函数化简技巧

一些重要式子 ∑i0∞xi11−x\sum_{i0}^{\infty}x^i\frac{1}{1-x}∑i0∞​xi1−x1​ 推论&#xff1a; 11−ax∑i0∞aixi\frac{1}{1-ax}\sum_{i0}^{\infty}a^ix^i1−ax1​∑i0∞​aixi 11−xk∑i0∞xik\frac{1}{1-x^k}\sum_{i0}^{\infty}x^{ik}1−xk1​∑i0∞​xik 11−cxk∑i0∞…

.NET西安社区 [拥抱开源,又见 .NET] 活动简报

拥抱开源, 又见 .NET」随着 .NET Core的发布和开源&#xff0c;.NET又重新回到了人们的视野。除了开源、跨平台、高性能以及优秀的语言特性&#xff0c;越来越多的第三方开源库也出现在了Github上——包括ML.NET机器学习、Xamarin移动开发平台、基于Actor模型的分布式框架Orlea…

HDU 2504 又见GCD

HDU 2504 文章目录Problem Description题解&#xff1a;代码&#xff1a;Problem Description 有三个正整数a,b,c(0<a,b,c<10^6)&#xff0c;其中c不等于b。若a和c的最大公约数为b&#xff0c;现已知a和b&#xff0c;求满足条件的最小的c。 Input 第一行输入一个n&#x…

【线段树】【LCT】【LCA】树点涂色(luogu 3703)

树点涂色 luogu 3703 题目大意 给出一棵树&#xff0c;每个节点的初始颜色不同&#xff0c;做若干操作&#xff1a; 1.在一个点到根节点路径上染上一种新的颜色 2.查询一条路径上有多少种不同的颜色 3.查询一个点x&#xff0c;使该点到根节点路径的不同颜色种数最多 输入样…

P3515-[POI2011]Lightning Conductor【整体二分,决策单调性】

正题 题目链接:https://www.luogu.com.cn/problem/P3507 题目大意 nnn个数字的一个序列aaa&#xff0c;对于每个位置iii求一个pip_ipi​使得对于任意jjj满足 piai−∣i−j∣≥pjp_ia_i-\sqrt{|i-j|}\geq p_jpi​ai​−∣i−j∣​≥pj​ 解题思路 化简一下发现我们是需要求出m…

关于二项式

组合数 (nm)\dbinom{n}{m}(mn​)&#xff1a;从 nnn 个物品中选出 mmm 个的方案数。 (nm)n!m!(n−m)!nm‾m!\dbinom{n}{m}\dfrac{n!}{m!(n-m)!}\dfrac{n^{\underline{m}}}{m!}(mn​)m!(n−m)!n!​m!nm​​ &#xff08;这个式子只依靠经典的组合意义&#xff0c;所以只在 0≤m≤…

dotnet core高吞吐Http api服务组件FastHttpApi

简介是dotNet core下基于Beetlex实现的一个高度精简化和高吞吐的HTTP API服务开源组件&#xff0c;它并没有完全实现HTTP SERVER的所有功能&#xff0c;而是只实现了在APP和WEB中提供数据服务最常用两个指令GET/SET&#xff0c;满足在应用实现JSON,PROTOBUF和MSGPACK等基于HTTP…

Poj 1284 Primitive Roots

文章目录Description题意&#xff1a;题解&#xff1a;代码&#xff1a;Poj 1284Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6485 Accepted: 3697Description We say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and onl…

P3507-[POI2010]GRA-The Minima Game【dp,博弈论】

正题 题目链接:https://www.luogu.com.cn/problem/P3507 题目大意 nnn个数&#xff0c;没人轮流取若干个并获得取走的数中最小数的权值&#xff0c;两人的目标都是自己的权值−-−对方的权值最大&#xff0c;求先手的权值−-−后手的权值。 解题思路 肯定是从大往小取&#x…

【LCT】【树状数组】Matches Are Not a Child‘s Play(luogu CF1137F)

正题 luogu CF1137F 题目大意 定义一棵树的产出序列为依次删除权值最小的叶子节点的顺序 进行q此操作&#xff1a; 1.把一个点的权值改为当前树中的最大权值1 2.查询一个点在删除序列中的位置 3.给出两个点&#xff0c;查询哪个在删除序列中的位置更前 解题思路 假设已经求出…

[XSY4220] 九万步(结论)

手动构造发现 x6x6x6 时是可行的 -101234567xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

一起开心2020暑假训练第一周

hdu 1576 A/B oj传送 题解&#xff1a; Poj 1061 青蛙的约会 oj传送 题解&#xff1a; hdu 1525 Euclid‘s Game oj传送 题解&#xff1a; Poj 3070 Fibonacci oj传送 题解&#xff1a; HDU 2504 又见GCD oj传送 题解&#xff1a; Poj 1284 Primitive Roots oj传送 …

ASP.NET Core 中的中间件

前言由于是第一次写博客,如果您看到此文章,希望大家抱着找错误、批判的心态来看。 sky!何为中间件?在 ASP.NET Framework 中应该都知道请求管道。可参考&#xff1a;浅谈 ASP.NET 的内部机制 系列&#xff0c;个人感觉超详细。题外话&#xff1a;说到请求管道&#xff0c;就想…

【bfs】重力球(luogu 7473/NOI Online 2021 普及组 T3)

正题 luogu 7473 题目大意 给出一个正方形区域&#xff0c;中间有一些障碍 现在有两个球&#xff0c;每次操作可以使两个球同时向一个方向移动&#xff0c;直到遇到障碍或边界 现在问你让两个球到同一个位置最少要多少步 解题思路 对于每次操作&#xff0c;球只有可能停在障…

CF700E-Cool Slogans【SAM,线段树合并,dp】

正题 题目链接:https://www.luogu.com.cn/problem/CF700E 题目大意 给出一个字符串SSS&#xff0c;求一个最大的kkk使得存在kkk个字符串其中s1s_1s1​是SSS的子串&#xff0c;si1s_{i1}si1​在sis_isi​中出现了至少222次。 解题思路 首先我们需要有两个结论 si1s_{i1}si1​…

[XXSY] 构树(prufer序列,树上连通块DP)

传送门 CayleyCayleyCayley公式&#xff1a;一个完全图有nn−2n^{n-2}nn−2棵无根生成树&#xff08;可用prufer序列证明&#xff09; 扩展CayleyCayleyCayley公式&#xff1a;被确定边分为大小为a1,a2,⋯,ama_1,a_2,\cdots, a_ma1​,a2​,⋯,am​的连通块&#xff0c;则有nm−…

.NET Core中的性能测试工具BenchmarkDotnet

背景介绍之前一篇博客中&#xff0c;我们讲解.NET Core中的CSV解析库&#xff0c;在文章的最后&#xff0c;作者使用了性能基准测试工具BenchmarkDotNet测试了2个不同CSV解析库的性能&#xff0c;本篇我们来详细介绍一下BenchmarkDotNet。原文链接&#xff1a;https://dotnetco…

序列求和

来源&#xff1a;牛客网 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld题目描述 定义S(n) 12 22 … n2&#xff0c;输出S(n) …

【区间DP】摆渡线路(2017 特长生 T4)

题目大意 给出一个园&#xff0c;圆上有100个点&#xff0c;若干条弦&#xff0c;让你选择尽量多互不相交的弦&#xff08;点可以重合&#xff09; 解题思路 可以把圆展开成链&#xff0c;然后复制一遍 设fi,jf_{i,j}fi,j​为第i个位置到第j个位置的所选弦的数量 那么可以枚…

bzoj4589-Hard Nim【FWT】

正题 题目链接:https://darkbzoj.tk/problem/4589 题目大意 求有多少个长度为nnn的数列满足它们都是不大于mmm的质数且异或和为000。 解题思路 两个初始多项式F[0]1F[0]1F[0]1&#xff0c;G[prime≤m]1G[prime\leq m]1G[prime≤m]1&#xff0c;然后答案就是FxorGnF\ xor\ G^…