佳佳的Fibonacci
#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的更多相关文章
- 一本通1644【例 4】佳佳的 Fibonacci
1644:[例 4]佳佳的 Fibonacci 时间限制: 1000 ms 内存限制: 524288 KB sol:搞了大概一个多小时什么结果都没,被迫去看题解,感觉自己菜到家了qaq ...
- 佳佳的 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\). 解 ...
- TYVJ P3407 佳佳的魔法照片 Label:语文很重要 语文很重要 语文很重要
描述 佳佳的魔法照片(mphoto.pas\c\cpp) [题目背景] 佳佳的魔法照片(Magic Photo):如果你看过<哈利•波特>,你就会知道魔法世界里的照片是很神奇的.也许是因为 ...
- vijosP1285 佳佳的魔法药水
vijosP1285 佳佳的魔法药水 链接:https://vijos.org/p/1285 [思路] 图论思想. 很巧妙. 如A+B=C,将AB之间连边,边权为C,用以找相连物品与合成物. 用Dij ...
- 【DFS】佳佳的魔法阵
[vijos1284]佳佳的魔法阵 背景 也许是为了捕捉猎物(捕捉MM?),也许是因为其它原因,总之,佳佳准备设计一个魔法阵.而设计魔法阵涉及到的最关键问题,似乎就是那些带有魔力的宝石的摆放…… 描述 ...
- P1875 佳佳的魔法药水
P1875 佳佳的魔法药水 题目描述 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的病只有一种办法,那就是传说中的 0 号药水 ……怎么样才能 ...
- vijos:P1285佳佳的魔法药水
背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水……怎么样才能得到0号药水呢?你要知道佳佳的家境也不是很好,成本得 ...
- 洛谷 P1875 佳佳的魔法药水
P1875 佳佳的魔法药水 题目描述 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的病只有一种办法,那就是传说中的 0 号药水 --怎么样才能 ...
- 洛谷—— P1875 佳佳的魔法药水
https://www.luogu.org/problemnew/show/1875 题目背景 发完了 k 张照片,佳佳却得到了一个坏消息:他的 MM 得病了!佳佳和大家一样焦急 万分!治好 MM 的 ...
随机推荐
- React(二)组件
1.组件概念: 我理解的组件的概念就是复用性,一个组件开发完成后可以重复使用. 2.简单的组件编写 (1)在src中创建一个components的文件夹,里面创建一个header.js的文件 (2)在 ...
- 201771010126 王燕《面向对象程序设计(java)》第八周学习总结
实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法 JAVA中通过interface关键字定义接口: 接口中只能定义public static fi ...
- [LeetCode] Chalkboard XOR Game 黑板亦或游戏
We are given non-negative integers nums[i] which are written on a chalkboard. Alice and Bob take tu ...
- 在循环中如何取input的值和增加点击事件
{volist name="dianpu" id="dianpu"} <input style="border: none;" rea ...
- 学习java编程思想 第一章 对象导论
一.面向对象的五个基本特性: 1.万物皆为对象.将对象视为奇特的变量,他可以存储数据,还可以要求它在自身上执行操作. 2.程序是对象的合集,他们通过发送消息告诉彼此所要做的. 3.每个对象都有自己的由 ...
- java.text.DateFormat 线程不安全问题
java.text下的 DateFormat 是线程不安全的: 建议1: 1.使用threadLocal包装DateFormat(太复杂,不推荐) 2.使用org.apache.commons.lan ...
- Ultimate Guide to WeChat for Business 2019
Ultimate Guide to WeChat for Business 2019 By Iaroslav Kudritskiy (source :https://rocketbots.io/blo ...
- Autofac之类型注册
本次主要学习一下Autofac中实现类型注册的几种方式,这里并不打算一开始就从基于接口开发的服务关联切入,而是先从一个简单的类型注册来学起,虽然实际开发中可能不会这么做,但是个人感觉从这里学起理解能能 ...
- webToImage (网页转图片)模块试用分享
模块介绍: 本模块封装了把 webview 转换成图片的功能.调用本模块的transImage接口,可把当前 webview显示的内容转换成一张图片.注意,本模块只能把当前的webview页面转换为图 ...
- python基础2 数据类型、数据拼接、数据转换
一.数据类型 1.字符串 字符串英文string,简写str,只要是被[单/双/三引号]这层皮括起来的内容,不论那个内容是中文.英文.数字甚至火星文.只要是被括起来的,就表示是字符串类型 如:prin ...