#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
typedef long long ll;
const int M=;
const int N=;
ll n,m,f2,f1,s1,p1;
ll sn,pn,tn;
struct node{
ll g[M][M];
}mat,res;
void matrixMutiple(node &x,node &y,node &z){
//矩阵乘法运算
memset(z.g,,sizeof(z.g));
for(int i = ; i<=N; i++){
for(int j=; j<=N; j++) if(x.g[i][j]){
for(int k=; k<=N; k++){
z.g[i][k]+=x.g[i][j]*y.g[j][k];
if(z.g[i][k]>=m) z.g[i][k]%=m;
}
}
}
}
void matrixI(node &E){
//构造单位矩阵
for(int i=; i<=N; i++){
for(int j=; j<=N; j++) E.g[i][j]=(i==j);
}
}
void matrixMuti(ll k){
//快速幂运算
matrixI(res); node tmp=mat, t;
while(k){
if(k&) {//“&1”判断k的奇偶
matrixMutiple(res,tmp,t); res=t;
}
matrixMutiple(tmp,tmp,t); tmp=t;
k>>=;
}
}
void init(){
//初始化矩阵
memset(mat.g,,sizeof(mat.g));
mat.g[][]=; mat.g[][]=;
mat.g[][]=;
mat.g[][]=; mat.g[][]=;
mat.g[][]=; mat.g[][]=;
f1=f2=s1=; p1=;
}
int main(){
ios::sync_with_stdio(false); //加速cin和cout
while(cin>>n>>m){
init();
ll ans=;
matrixMuti(n-);
sn=(res.g[][]*f2+res.g[][]*f1+res.g[][]*s1+res.g[][]*p1)%m;
pn=(res.g[][]*f2+res.g[][]*f1+res.g[][]*s1+res.g[][]*p1)%m;
tn=(n*sn-pn+m)%m;
cout<<tn<<endl;
}
return ;
}

佳佳的Fibonacci:

时间限制: 1 Sec  内存限制: 128 MB

题目描述

佳佳对数学,尤其数列十分感兴趣,在研究完Fibonacci之后,他创造出许多稀奇古怪的数列。如求S(n)表示Fibonacci数列前n项和对m取模之后的值,即S(n)=(F1+F2+…+Fn) mod m,F1=F2=1。可是这对佳佳来说还是小菜一碟。终于,他找到一个自己解决不了的数列。。。T(n)表示Fibonacci数列前n项变形后的和对m取模之后的值,即T(n)=(F1+2*F2+3*F3+…+n*Fn) mod m,F1=F2=1。

输入

第一行,包含两个整数n和m。1<=n,m<=2^31-1

输出

共1行, T(n)的值。

样例输入

5 5

样例输出

1

【样例解释】

T(5)=(1+2*1+3*2+4*3+5*5)mod 5 = 1

【数据规模】

30%数据1<=n<=1000

60%数据1<=m<=1000

100%数据1<=n,m<=2^31-1

佳佳的Fibonacci的更多相关文章

  1. 一本通1644【例 4】佳佳的 Fibonacci

    1644:[例 4]佳佳的 Fibonacci 时间限制: 1000 ms         内存限制: 524288 KB sol:搞了大概一个多小时什么结果都没,被迫去看题解,感觉自己菜到家了qaq ...

  2. 佳佳的 Fibonacci

    佳佳的 Fibonacci \(f_n=f_{n-1}+f_{n-2},f_1=f_2=1\),求\(f_1+2f_2+3f_3+...+nf_nmod\ m,1≤n,m≤2^{31}-1\). 解 ...

  3. TYVJ P3407 佳佳的魔法照片 Label:语文很重要 语文很重要 语文很重要

    描述 佳佳的魔法照片(mphoto.pas\c\cpp) [题目背景] 佳佳的魔法照片(Magic Photo):如果你看过<哈利•波特>,你就会知道魔法世界里的照片是很神奇的.也许是因为 ...

  4. vijosP1285 佳佳的魔法药水

    vijosP1285 佳佳的魔法药水 链接:https://vijos.org/p/1285 [思路] 图论思想. 很巧妙. 如A+B=C,将AB之间连边,边权为C,用以找相连物品与合成物. 用Dij ...

  5. 【DFS】佳佳的魔法阵

    [vijos1284]佳佳的魔法阵 背景 也许是为了捕捉猎物(捕捉MM?),也许是因为其它原因,总之,佳佳准备设计一个魔法阵.而设计魔法阵涉及到的最关键问题,似乎就是那些带有魔力的宝石的摆放…… 描述 ...

  6. P1875 佳佳的魔法药水

    P1875 佳佳的魔法药水 题目描述 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的病只有一种办法,那就是传说中的 0 号药水 ……怎么样才能 ...

  7. vijos:P1285佳佳的魔法药水

    背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水……怎么样才能得到0号药水呢?你要知道佳佳的家境也不是很好,成本得 ...

  8. 洛谷 P1875 佳佳的魔法药水

    P1875 佳佳的魔法药水 题目描述 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的病只有一种办法,那就是传说中的 0 号药水 --怎么样才能 ...

  9. 洛谷—— P1875 佳佳的魔法药水

    https://www.luogu.org/problemnew/show/1875 题目背景 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的 ...

随机推荐

  1. Linux基础系统优化

    Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和ip等参数 ifup,ifdown    脚本命 ...

  2. 堡垒机jumpserver测试记录--安装

    一步一步安装(CentOS) 基本都是官网的东西,只是有些坑做了记录. http://docs.jumpserver.org/zh/docs/step_by_step.html 环境 系统: Cent ...

  3. python 3 实现文件下载的方法总结

    新学的python,兴奋不已,于是网上各种资源各种爬,发现对于同样文件下载,各个下载方法的速度是不一样的(目前就知道两种方法下载#尴尬) 下面分别看下吧: 下载同样的图片,方法二的速度是方法一的二倍 ...

  4. AMPPZ-2015 (MIPT Workshop Open 1)

    A. Album of Numbers 设$cnt[i]$表示数字$i$的个数,则$ans=\frac{\sum_{i} i\times cnt[i]\prod_{j>i}(cnt[j]+1)} ...

  5. maven deploy Return code is: 400, ReasonPhrase: Bad Request.

    最近在自己本地deploy jar 到本地 nexus的时候,报错 Return code is: 400, ReasonPhrase: Bad Request. 解决思路: 1.查看maven pr ...

  6. C_使用clock()函数获取程序执行时间

    clock():捕捉从程序开始运行到clock()被调用时所耗费的时间.这个时间单位是clock tick ,即“时钟打点”. 常数CLK_TCK:机器时钟每秒所走的时钟打点数. #include & ...

  7. angular.isFunction()

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

  8. 自定义 绑定响应函数 解除响应函数 .addEventListener 兼容 .attachEvent

    嗯哼.不多说,直接上代码. // 自定义 绑定响应函数 兼容性封装 Test Already. function bindEventFunc(obj, eventStr, func){ // cons ...

  9. js滚动条滚动到底部触发事件

    $("#contain").scroll(function(){ var $this =$(this), viewH =$(this).height(),//可见高度 conten ...

  10. mac chrome 强制刷新浏览器缓存

    普通刷新 command + r 强制刷新 command + shift + r