题解:

矩阵乘法,在矩阵中构造当前前缀和;

注意:for(int/long long ;;);

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long Lint; Lint n,m;
int k,p;
int b[200];
int c[200];
Lint tmp1,tmp2;
Lint sum;
int minit(){
tmp1=tmp2=sum=0;
} struct Matrix{
Lint e[200][200];
Matrix(){
memset(e,0,sizeof(e));
}
int clear(){
memset(e,0,sizeof(e));
}
}t,x,y,z,ret; int Mul(){
z.clear();
for(int i=0;i<=k;++i){
for(int j=0;j<=k;++j){
for(int r=0;r<=k;++r){
z.e[i][j]=(z.e[i][j]+x.e[i][r]*y.e[r][j])%p;
}
}
}
} int Ksm(Lint p){
ret.clear();
for(int i=0;i<=k;++i)ret.e[i][i]=1;
while(p){
if(p<0)return 0;
if(p&1){
x=ret;y=t;Mul();
ret=z;
}
p>>=1;
x=t;y=t;Mul();
t=z;
}
} int main(){
minit(); scanf("%d",&k);
for(int i=1;i<=k;++i)scanf("%d",&b[i]);
for(int i=1;i<=k;++i)scanf("%d",&c[i]);
scanf("%lld%lld%d",&n,&m,&p);
for(int i=1;i<=k;++i)sum=(sum+b[i])%p; if(m<=k){
for(int i=n;i<=m;++i)tmp1=(tmp1+b[i])%p;
printf("%lld\n",tmp1);
return 0;
}else{ for(Lint i=n;i<=k;++i)tmp2=(tmp2+b[i])%p;
n=max(n,k+1LL); for(int i=1;i<=k;++i)t.e[1][i]=t.e[0][i]=c[i];
for(int i=2;i<=k;++i)t.e[i][i-1]=1;
t.e[0][0]=1;
Ksm(n-k-1); for(int i=1;i<=k;++i){
tmp1=(tmp1+ret.e[0][i]*b[k-i+1])%p;
}
tmp1=(tmp1+sum*ret.e[0][0])%p; t.clear();
for(int i=1;i<=k;++i)t.e[1][i]=t.e[0][i]=c[i];
for(int i=2;i<=k;++i)t.e[i][i-1]=1;
t.e[0][0]=1;
Ksm(m-k); for(int i=1;i<=k;++i)tmp2=(tmp2+ret.e[0][i]*b[k-i+1]%p)%p;
tmp2=(tmp2+sum*ret.e[0][0])%p; printf("%lld\n",(tmp2-tmp1+p)%p);
return 0;
}
}

  

BZOJ:3231: [Sdoi2008]递归数列的更多相关文章

  1. BZOJ 3231: [Sdoi2008]递归数列( 矩阵快速幂 )

    矩阵乘法裸题..差分一下然后用矩阵乘法+快速幂就可以了. ----------------------------------------------------------------------- ...

  2. BZOJ 3231: [Sdoi2008]递归数列 (JZYZOJ 1353) 矩阵快速幂

    http://www.lydsy.com/JudgeOnline/problem.php?id=3231   和斐波那契一个道理在最后加一个求和即可 #include<cstdio> #i ...

  3. bzoj 3231 [Sdoi2008]递归数列——矩阵乘法

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3231 矩阵乘法裸题. 1018是10^18.别忘了开long long. #include& ...

  4. bzoj 3231: [Sdoi2008]递归数列【矩阵乘法】

    今天真是莫名石乐志 一眼矩阵乘法,但是这个矩阵的建立还是挺有意思的,就是把sum再开一列,建成大概这样 然后记!得!开!long!long!! #include<iostream> #in ...

  5. BZOJ3231: [Sdoi2008]递归数列

    BZOJ3231: [Sdoi2008]递归数列 Description 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + ...

  6. BZOJ_3231_[Sdoi2008]递归数列_矩阵乘法

    BZOJ_3231_[Sdoi2008]递归数列_矩阵乘法 Description 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1a ...

  7. 开始玩矩阵了!先来一道入门题![SDOI2008]递归数列

    [SDOI2008]递归数列 题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + c ...

  8. P2461 [SDOI2008]递归数列

    题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj 和 cj ...

  9. [bzoj3231][SDOI2008]递归数列——矩阵乘法

    题目大意: 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj和 cj ...

随机推荐

  1. pythono整数和字符串魔法方法

    1.整数(int) a = 1 b = 2 c = 3 d = 4 e = 5u a1 = a.bit_length() b1 = b.bit_length() c1 = c.bit_length() ...

  2. spring bean容器学习

    bean是Spring种最核心的东西 ,如果说Spring是个水桶的话,bean就是桶里面的水,桶里面没有水也就没有意义了. public class MyTestBean { private Str ...

  3. EXTjs开发————优雅的用extjs写一个柱状图

    简单的写法,extjs可以直接引用插件来写,这里将我发表在百度文库的文档简述下来,有兴趣也可以关注我的百度文库,ID:该用户已失踪. 主要部分的代码: $(document).ready(functi ...

  4. R 《回归分析与线性统计模型》page93.6

    rm(list = ls()) #数据处理 library(openxlsx) library(car) library(lmtest) data = read.xlsx("xiti4.xl ...

  5. spring#事件发布订阅

    1. 如果在应用中发生了某些事件,事件会被拦截和处理就好了,这样就有了很大的灵活性,至少代码不会紧密的耦合在一起, 代码的解耦就是业务的解耦,业务A的代码不用手动的调用业务B的代码,业务B只需要监听相 ...

  6. solus linux 更新源

    添加源(清华大学开源软件镜像)sudo eopkg ar Solus https://mirrors.tuna.tsinghua.edu.cn/solus/shannon/eopkg-index.xm ...

  7. 让SVG以组件的方式引入吧!

    安装 npm i -D vue-svg-loader or yarn add -D vue-svg-loader webpack 配置 module.exports = { module: { rul ...

  8. 008.Oracle数据库 , 判断字段内容是否为空

    /*Oracle数据库查询日期在两者之间*/ SELECT PKID, OCCUR_DATE, ATA FROM LM_FAULT WHERE ( ( OCCUR_DATE >= to_date ...

  9. 0109 springboot的部署测试监控

    springboot的部署测试监控 部署 基于maven 打包 JAR 打包方式一般采用的jar包,使用springboot的默认方式即可: 使用maven命令: mvn clean package ...

  10. Netty 中队列的使用

    任务队列中的Task有3种典型使用场景 用户程序自定义的普通任务 此前代码: 参考https://www.cnblogs.com/ronnieyuan/p/12016712.html NettySer ...