第一次独立做矩阵,只WA了一次,好高兴~~

  题意:已知 F(n)=3 * F(n-1)+2 * F(n-2)+7 * F(n-3),n>=3,其中F(0)=1,F(1)=3,F(2)=5,对于给定的每个n,输出F(0)+ F(1)+ …… + F(n) mod 2009。

  S(n) = F(0)+F(1)+...+F(n),

  S(n) = S(n-1)+F(n);

  S(n) = S(n-1)+3*F(n-1)+2*F(n-2)+7*F(n-3).

  由上面的式子可以得出矩阵

|1,0,0,0|n-2
                                              |3,3,1,0|
     {S(n),F(n),F(n-1),F(n-2)}  |2,2,0,1|    = {S(2),F(2),F(1),F(0)}
                                              |7,7,0,0|

   得出矩阵就好办了~~

  

#include<stdio.h>
#include<string.h>struct mat{int f[4][4];mat(){for(int i=0;i<4;i++)for(int j=0;j<4;j++)f[i][j]=0;}
};
const int mod = 2009;mat mul(mat a,mat b)
{mat ret;for(int i=0;i<4;i++)for(int j=0;j<4;j++)for(int k=0;k<4;k++)ret.f[i][j]=(ret.f[i][j]+a.f[i][k]*b.f[k][j])%mod;return ret;
}
mat mat_Pow(mat a,int n)
{mat e;e.f[0][0]=e.f[1][1]=e.f[2][2]=e.f[3][3]=1;while(n){if(n&1) e=mul(e,a);a=mul(a,a);n>>=1;}return e;
}int b[3]={1,4,9};
int main()
{int m,T,cas=1;scanf("%d",&T);while(T--){scanf("%d",&m);if(m<=2){printf("Case %d: %d\n",cas++,b[m]);continue;}mat res;res.f[0][0]=1;res.f[0][1]=3;res.f[0][2]=2;res.f[0][3]=7;res.f[1][1]=3;res.f[1][2]=2;res.f[1][3]=7;res.f[2][1]=1;res.f[3][2]=1;mat ans = mat_Pow(res,m-2);int aans = (ans.f[0][0]*9+ans.f[0][1]*5+ans.f[0][2]*3+ans.f[0][3])%mod;printf("Case %d: %d\n",cas++,aans);}return 0;
}

转载于:https://www.cnblogs.com/yongren1zu/p/3343654.html

纪念SlingShot 矩阵相关推荐

  1. 纪念SlingShot 矩阵快速幂 构造矩阵

    纪念SlingShot Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit  ...

  2. fzu 1683 纪念SlingShot 矩阵

    题意: 对于给出的递推关系,求前n项和 思路: 数据大,有规律.矩阵快速幂吧.然而为啥这题long long 就TLE.智障题. 构造: Sn=Sn-1+F(n)= Sn-1 +3F(n-1)+2F( ...

  3. FZU 1683 纪念SlingShot (简单的矩阵快速幂)

     纪念SlingShot Description 已知 F(n)=3 * F(n-1)+2 * F(n-2)+7 * F(n-3),n>=3,其中F(0)=1,F(1)=3,F(2)=5,对于给 ...

  4. FZU 1683 纪念SlingShot

    Problem 1683 纪念SlingShot Accept: 682    Submit: 2368 Time Limit: 1000 mSec    Memory Limit : 32768 K ...

  5. 【FOJ】Problem 1683 纪念SlingShot

    Problem 1683 纪念SlingShot. 思路 构造矩阵T S(n) = Tn-2[0][0] × S(2) + Tn-2[0][1] × f(2) + Tn-2[0][2] × f(1) ...

  6. FZU - 1683 纪念SlingShot

    Problem 1683 纪念SlingShot Accept: 719    Submit: 2492 Time Limit: 1000 mSec    Memory Limit : 32768 K ...

  7. 纪念SlingShot

    很多时候题目里面没有给你n的范围,所以把所有的情况都列出,没有列全的话也会出现time limit 的错误!!! 及时给了不明确,也要列出来 题意:f(0)=1,f(1)=3,f(2)=5,f(n)= ...

  8. FOJ 1683 纪念SlingShot

    来源:http://acm.fzu.edu.cn/problem.php?pid=1683 概述:已知 F(n)=3 * F(n-1)+2 * F(n-2)+7 * F(n-3),n>=3,其中 ...

  9. 《Nature》纪念人工智能60周年专题:深度学习综述

    来源:网络大数据 摘要:本文是<Nature>杂志为纪念人工智能60周年而专门推出的深度学习综述,也是Hinton.LeCun和Bengio三位大神首次合写同一篇文章. 本文是<Na ...

最新文章

  1. c语言中存储字符用什么函数,那些C语言中你不知道的字符串函数(坑)
  2. 使MySQL 支持繁体字
  3. 生产环境中on yarn模式是否采用yarn session
  4. (转)ZwQuerySystemInformation枚举内核模块及简单应用
  5. iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比
  6. cxf调用接口的几种方式_Java调用CXF WebService接口的两种方式实例
  7. java大于0的正则_求一个 大于0且小于1 的正则表达式(无论几位小数)
  8. apache 开启 网页压缩
  9. 世界四大名柚有哪些?
  10. 分享基于HTTP长连接的Web端即时通讯技术
  11. 递归例题讲解 一本通1215:迷宫 答案解析
  12. java增函数的单变量求解,最底层码农的不易谁能体会?谁心里苦谁知道啊。
  13. 免费翻译英文文献自动生成PDF双语文档小技巧
  14. 【编译原理·总复习】第二章||文法语言||语法树||最左最右推导归约||句柄直接短语||例题+知识点
  15. rosetta stone fatal application error: #1141错误 (罗塞塔石碑1141) 解决方法
  16. 工厂设计模式 - 详解
  17. 极速办公(PPT)如何设置幻灯片大小
  18. 策略梯度方法介绍——带基线的REINFORCE
  19. HTML好看个人主页展示开源源码
  20. JavaScript之方程式求解

热门文章

  1. Lisa Lambert:英特尔投资将加大AppUp和Tizen力度
  2. 领先租车行业,神州租车探索长期主义高质量发展
  3. oracle截取日期类型的字符串,oracle截取字段中的部分字符串:日期格式转换
  4. ES10 功能完全指南
  5. Vue中$emit的用法
  6. 4种整流电路、5种滤波电路
  7. AcWing 841. 字符串哈希
  8. 海岸TDM系统配置-动态建模系统权限
  9. 爬取李开复博客并导入mongodb数据库
  10. 科研人都在用的论文润色神器,速速收藏!