[HDU3117]Fibonacci Numbers
题目:Fibonacci Numbers
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3117
分析:
1)后四位可以用矩阵快速幂解决。$T= \left[ \begin{array}{cc} 0 & 1 \\ 1 & 1 \end{array} \right] $
2)前四位:Fibonacci公式:$ans= \frac{1}{\sqrt{5}} * { ( {\frac{1+sqrt{5}}{2}}^n - {\frac{1-\sqrt{5}}{2}}^n )}$
当n够大时,${( \frac{1-\sqrt{5}}{2} )}^n$趋于0。
取以10为底的对数:
$log_{10}{ans} = log_{10}{\frac{1}{\sqrt{5}} * {[ {\frac{1+sqrt{5}}{2}}^n - {\frac{1-\sqrt{5}}{2}}^n ]}}$
$= log_{10}{\frac{1}{\sqrt{5}} * {[ \frac{1+sqrt{5}}{2} ]}^n }$
$= log_{10}{\frac{1}{\sqrt{5}} + log_{10}{\frac{1+sqrt{5}}{2}}^n}$
$= -0.5*log_{10}{5} + n*log_{10}{[ \frac{1+sqrt{5}}{2} ]}$
然后
$10^{ans} \% 10000$=$10^{[ans]} * 1000$=$10^{3+ans-(long long)ans}$
- #include <iostream>
- #include <cstring>
- #include <cstdio>
- #include <cmath>
- using namespace std;
- typedef long long LL;
- const int MOD=;
- struct Matrix{
- LL a[][];
- void init(int f){
- memset(a,,sizeof a);
- if(f==-)return;
- for(int i=;i<;++i)a[i][i]=;
- }
- };
- Matrix operator*(Matrix& A,Matrix& B){
- Matrix C;C.init(-);
- for(int i=;i<;++i)
- for(int j=;j<;++j)
- for(int k=;k<;++k){
- C.a[i][j]+=A.a[i][k]*B.a[k][j];
- C.a[i][j]%=MOD;
- }
- return C;
- }
- Matrix operator^(Matrix A,int n){
- Matrix Rt;Rt.init();
- for(;n;n>>=){
- if(n&)Rt=Rt*A;
- A=A*A;
- }
- return Rt;
- }
- int main(){
- Matrix A,T;
- T.a[][]=;T.a[][]=;
- T.a[][]=;T.a[][]=;
- for(int n;~scanf("%d",&n);){
- if(n<){
- A=T^n;
- printf("%lld\n",A.a[][]);
- }else{
- A=T^n;
- double ans=-0.5*log10(5.0)+n*log10((+sqrt(5.0))/);
- ans=ans-(LL)ans+;
- printf("%d...%04lld\n",(int)pow(,ans),A.a[][]%);
- }
- }
- return ;
- }
[HDU3117]Fibonacci Numbers的更多相关文章
- 【HDU3117】Fibonacci Numbers
[HDU3117]Fibonacci Numbers 题面 求斐波那契数列的第\(n\)项的前四位及后四位. 其中\(0\leq n<2^{32}\) 题解 前置知识:线性常系数齐次递推 其实后 ...
- codeforces 446C DZY Loves Fibonacci Numbers(数学 or 数论+线段树)(两种方法)
In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation F1 ...
- Codeforces 446-C DZY Loves Fibonacci Numbers 同余 线段树 斐波那契数列
C. DZY Loves Fibonacci Numbers time limit per test 4 seconds memory limit per test 256 megabytes inp ...
- cf446C DZY Loves Fibonacci Numbers
C. DZY Loves Fibonacci Numbers time limit per test 4 seconds memory limit per test 256 megabytes inp ...
- Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers
參考:http://www.cnblogs.com/chanme/p/3843859.html 然后我看到在别人的AC的方法里还有这么一种神方法,他预先设定了一个阈值K,当当前的更新操作数j<K ...
- HDU 3117 Fibonacci Numbers(围绕四个租赁斐波那契,通过计++乘坐高速动力矩阵)
HDU 3117 Fibonacci Numbers(斐波那契前后四位,打表+取对+矩阵高速幂) ACM 题目地址:HDU 3117 Fibonacci Numbers 题意: 求第n个斐波那契数的 ...
- Fibonacci Numbers
Fibonacci Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- Codeforces446C - DZY Loves Fibonacci Numbers
Portal Description 给出一个\(n(n\leq3\times10^5)\)个数的序列,进行\(m(m\leq3\times10^5)\)次操作,操作有两种: 给区间\([L,R]\) ...
- UVA 11582 Colossal Fibonacci Numbers(数学)
Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定 ...
随机推荐
- Android深度探索-卷1第七章心得体会
创建LED驱动的设备文件 第一步:使用cdev_init函数初始化cdev 第二步:指定设备号.直接在代码指定或动态分配 第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中 第四步 ...
- 利用正则表达式模拟计算器进行字符串的计算实现eval()内置函数功能
代码感觉有点绕,刚开始学习python,相关知识点还没全部学习到,还请各位大神多多指教 import re # 定义乘法 def mul(string): mul1 = re.search('-?\d ...
- instanceof 和isinstance的区别
class A {} class B extends A {} class C extends A {} public class Test { public static void main(Str ...
- svg画圆环
之前我已经分享了一篇css画圆环,为啥今天还要分享一篇svg画圆环呢? 原因是:css画圆环在部分ipone手机会有bug,最大张角为90°,所以圆环会有白色的间隙. 好了,开始代码展示: html: ...
- vue使用vue-router beforEach实现判断用户登录跳转路由筛选
vue使用vue-router beforEach实现判断用户登录跳转路由筛选 :https://www.colabug.com/3306814.html 在开发webApp的时候,考虑到用户体验,经 ...
- Codeforces 1093C (思维+贪心)
题面 传送门 题目大意: 有一个长n(n为偶数)的序列a 已知a满足 \(a_1≤a_2≤⋯≤a_n\) 给出一个长度为\(\frac{n}{2}\) 的序列b,定义\(b_i=a_i+a_{n-i+ ...
- luoguP3391[模板]文艺平衡树(Splay) 题解
链接一下题目:luoguP3391[模板]文艺平衡树(Splay) 平衡树解析 这里的Splay维护的显然不再是权值排序 现在按照的是序列中的编号排序(不过在这道题目里面就是权值诶...) 那么,继续 ...
- H Kuangyeye and hamburgers
链接:https://ac.nowcoder.com/acm/contest/338/H来源:牛客网 题目描述 Kuangyeye is a dalao of the ACM school team ...
- nginx+lua+redis实现灰度发布_test
nginx+lua+redis实现灰度发布: 灰度发布是指在黑白之间能够平滑过渡的一种方式 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见, ...
- 【记录】elastiasearch 6.4.3 版本 SearchRequestBuilder字段排序,BoolQueryBuilder
参考地址: 1:https://www.cnblogs.com/shoutn/p/8027960.html 2:https://www.jianshu.com/p/8402eb930ae7 3:htt ...