题目描述:

  对于斐波那锲数列f(0)=0,f(1)=1,....求f(f(n)的值

  0<=n<=10^100

  给出T组数据,每行一个n

  输出n行 f(f(n))

样例输入:

  4

  0

  1

  2

  6

输出:

  0

  1

  1

  21

思路:

  原来菲波那切数列是个纯周期数列,对于每一个模数MOD,它会有一个最小正周期,那么我们可以把这个很大的数n 或者 f(n) 映射到 一个的小区间,然后矩阵快速幂就OK了

  关于哪个最小正周期的值,暴力去求就行了。

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
#define mo2 329616
LL n,T;
LL mod;
LL M=;
LL mo1=M*+;
struct node{
LL v[][];
}ans,f;
void Ccin()
{
n=;
LL q=getchar();
while(q<||q>)q=getchar();
while(q>=&q<=)
{
n=(n*+q-)%mo2;
q=getchar();
}
}
node ch(node a,node b)
{
node ans1;
for(int i=;i<=;i++)
for(int j=;j<=;j++)
{
ans1.v[i][j]=;
for(int k=;k<=;k++)
ans1.v[i][j]=(ans1.v[i][j]+(a.v[i][k]*b.v[k][j])%mod)%mod;
}
return ans1;
}
void fastlow()
{
while(n)
{
if(n&) ans=ch(ans,f);
f=ch(f,f);n/=;
}
}
int main()
{
freopen("na.in","r",stdin);
freopen("na.out","w",stdout);
scanf("%lld",&T);
while(T--)
{
Ccin();
ans.v[][]=;ans.v[][]=ans.v[][]=ans.v[][]=;
f.v[][]=f.v[][]=f.v[][]=;f.v[][]=;
n;
mod=mo1;
fastlow();
n=ans.v[][];
mod=M;
ans.v[][]=;ans.v[][]=ans.v[][]=ans.v[][]=;
f.v[][]=f.v[][]=f.v[][]=;f.v[][]=;
fastlow(); cout<<ans.v[][]<<endl;
}
return ;
}

na 残的更多相关文章

  1. Sa yo na ra

    总想记点些什么. 都快忘了当初是为什么来到这里呢... 2014年10月,友人给我介绍了一门编程竞赛ACM,并给我演示了一下A+B.于是我知道了ACM的含义. 2014年12月,开始水入门题. 201 ...

  2. 清北国庆day1 (脑)残

    (留坑) /* 不知道为什要找的循环节TM这么长 */ #include<cstdio> #include<cstdlib> #include<cstring> u ...

  3. R语言 奇怪的NA

    > 1+NA [1] NA > NA==1 [1] NA > c(NA,1:50) [1] NA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  4. Win7去除桌面残影的方法

    用户升级到Win7系统后使用正常,就是系统桌面会留有残影,怎么样也去不掉,影响用户的使用,那么要如何将这些残影去掉呢?可从计算机属性中进行相关配置. 解决方法 一.在计算机面板上,右键点击“计算机”, ...

  5. Unity3d 残影效果(狂拽炫酷叼炸天)

    效果图,真的很叼啊 我根据别人的改进了一版,支持MeshFilter上的Mesh(需要确保Mesh的Read/Write是开启的否则不能正常工作) 非常感谢原作者给提供思路.http://blog.c ...

  6. HDU4888 Redraw Beautiful Drawings(最大流唯一性判定:残量网络删边判环)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4888 Description Alice and Bob are playing toget ...

  7. as3如何做出残影效果

    在页游中,时不时能看到人物做一些快速移动动作如冲刺时,有残影效果,强化了画面表现.实际人肉眼之所以能看到残影的效果,是因为观察到的物体会在人视线中残留几十毫秒时间,当运动物体运动太快时,人肉眼所见未能 ...

  8. R中,去掉dataframe中的NA行

    R中使用complete.cases 和 na.omit来去掉包含NA的行 现在有个一data.frame  datafile如下所示 Date        sulfate nitrate ID 1 ...

  9. Unity3D手游开发日记(8) - 运动残影效果

    2D游戏的残影很简单,美术做序列帧图片就行了,那么3D游戏的残影美术做不了,得靠程序员动态创建模型来处理. 实现原理也很简单: 1.间隔一定时间创建一个残影模型 GameObject go = Gam ...

随机推荐

  1. NMS 原理 了解

    NMS 原理:对于Bounding Box的列表B及其对应的置信度S,采用下面的计算方式.选择具有最大score的检测框M,将其从B集合中移除并加入到最终的检测结果D中.通常将B中剩余检测框中与M的I ...

  2. Windows Vista for Developers——第四部分:用户帐号控制(User Account Control,UAC)

    作者:Kenny Kerr 翻译:Dflying Chen 原文:http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-f ...

  3. 利用vs自带工具分析程序性能

    测试程序写好后可以通过VS2010分析菜单里选择启用性能向导 选择CPU采样后就选择需要分析的项目 测试项目选择完成后就可以运行分析,结束分析后VS2010会提供个详细报告文档 从分析结果来看GetC ...

  4. OpenWrt路由器通过iPhone有线共享网络上网

    2018年4月更新: 我自己的手机在openwrt上网速很慢,在电脑上又很快.应该不是被限速了,但是没找到原因. 三大运营商在学校争客户,手机卡开出了校内无限流量的条件.很开心,之前准备到东北大学的时 ...

  5. Httpclient: 多层翻页网络爬虫实战(以搜房网为例)

    参考:http://blog.csdn.net/qy20115549/article/details/52912532 一.创建数据表 #创建表:用来存储url地址信息 create table so ...

  6. TypeScript完全解读(26课时)_17.装饰器

    实验性的特性,需要在tslint里面把这项设置为true 作用域类的声明方法.访问符.属性和参数上 使用@符号加一个名字来定义,名字必须是一个函数,或者求值后是一个函数 装饰器工厂,setPro当做一 ...

  7. 洛谷 - P2424 - 约数和 - 整除分块

    https://www.luogu.org/problemnew/show/P2424 记 \(\sigma(n)\) 为n的所有约数之和,例如 \(\sigma(6)=1+2+3+6=12\) . ...

  8. TP5之上传多张图片

    1.效果图(每点击一次‘添加选项’,就会有一个新的 file 框来添加新的图片) 2.view <!--不要忘了引入jquery文件--> <!-- post传值方式和文件传输协议一 ...

  9. Math对象产生随机数一个小应用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. C# sbyte[]转byte[]

    http://stackoverflow.com/questions/2995639/sbyte-vs-byte-using-methodssbyte[] orig = ... byte[] arr ...