Problem 1683 纪念SlingShot

Accept: 682    Submit: 2368
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem 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,对于给定的每个n,输出F(0)+ F(1)+ …… + F(n) mod 2009。

 Input

第一行是一整数m,代表总共有m个cases。

 Output

对于每个case,输出一行。格式见样例,冒号后有一个空格。

 Sample Input

236

 Sample Output

Case 1: 37
Case 2: 313

思路: 构造矩阵。矩阵的快速幂和矩阵的乘法, (注意两个矩阵相乘不满足交换律)

由此我们可以得到两个 矩阵 {1 3 2 7
0 3 2 7
0 1 0 0
0 0 1 0 }
{ 9 0 0 0
5 0 0 0
3 0 0 0
1 0 0 0 }
代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define mod 2009using namespace std;struct node
{int m[5][5];
};node a,I;
int len=4;void init()
{I.m[1][1]=9;I.m[2][1]=5;I.m[3][1]=3;I.m[4][1]=1;a.m[1][1]=1;a.m[1][2]=3;a.m[1][3]=2;a.m[1][4]=7;a.m[2][1]=0;a.m[2][2]=3;a.m[2][3]=2;a.m[2][4]=7;a.m[3][1]=0;a.m[3][2]=1;a.m[3][3]=0;a.m[3][4]=0;a.m[4][1]=0;a.m[4][2]=0;a.m[4][3]=1;a.m[4][4]=0;return ;
}node mut(node c,node b)
{node ans;for(int i=1;i<=4;i++){for(int j=1;j<=4;j++){ans.m[i][j]=0;for(int k=1;k<=4;k++){ans.m[i][j]=(ans.m[i][j]+b.m[i][k]*c.m[k][j])%mod;}}}return ans;
}node solve(int kk)
{node ans=I;node aa=a;while(kk){if(kk&1){ans=mut(ans,aa);}aa=mut(aa,aa);kk/=2;}return ans;
}int main()
{init();int t;scanf("%d",&t);int n;int cas=0;while(t--){scanf("%d",&n);printf("Case %d: ",++cas);if(n<=2){ if(n==0) printf("1\n");else if(n==1) printf("4\n");else printf("10\n");continue;}else{node fin = solve(n-2);printf("%d\n",fin.m[1][1]%mod);}       }return 0;}

FZU 1683 纪念SlingShot相关推荐

  1. FZU - 1683 纪念SlingShot

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

  2. 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,对于给 ...

  3. fzu 1683 纪念SlingShot 矩阵

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

  4. 【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) ...

  5. 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,其中 ...

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

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

  7. 纪念SlingShot

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

  8. 纪念SlingShot 矩阵

    第一次独立做矩阵,只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,对于给 ...

  9. 第一篇博客,纪念一下,终于开通啦!

    终于有网了,可以把自己积累的内容都放到博客上来了. 纪念一下. 转载于:https://www.cnblogs.com/tinazzz/p/7067482.html

最新文章

  1. mysql 代替不明_mysql不明原因停止后不能启动,请高手分析
  2. Linux下的格式化字符串漏洞利用姿势
  3. EF Core中关于System.Linq.Dynamic.Core的使用(转载)
  4. Python正则表达式介绍 re.findall(pattern, str, flag=0)/re.I re.L re.M
  5. 十二、深入Python列表和元组
  6. 【Python CheckiO 题解】Flatten a List
  7. 【学习笔记】第二章——处理机调度的概念、层次、时机、切换过程 调度方式、调度算法的指标
  8. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_7_等待唤醒机制需求分析...
  9. java为什么要用数据源_【Java】就配置了一个数据源,为什么提示 there is more than one bean of “DataSource” type...
  10. 第三方支付操作流程,有何优势,又存在哪些风险?
  11. 微机原理、汇编语言与接口技术(韩晓茹)课后答案
  12. 面试总结系列(一)------ 国际化中台事业部
  13. hdu 5956 The Elder
  14. EndNote X9插入参考文献的格式
  15. 树莓派4B安装官方64位桌面系统
  16. 2.4g语音遥控器小结
  17. 关于YOLOv7的分析
  18. 鸿蒙需要多少技能命中,【攻略团】鸿蒙困难(天音视角)
  19. 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素
  20. 如何查看linux当前版本

热门文章

  1. {推荐}-----IT职业生涯规划PPT
  2. 编程练习:非质数分解成质数相乘
  3. 阿里巴巴面试都问什么问题 [面试过程]
  4. 高德纳谈计算机程序设计艺术(下)
  5. PCB设计表面到底应不应该敷铜?
  6. 杭电OJ 1009(C++)
  7. mapreduce 本地开发环境
  8. 崩溃捕捉的dump没有提供堆栈的问题
  9. 1.5计算机性能评测
  10. 论文总结:基于深度学习的图像风格迁移研究