题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6470

题意:求,直接矩阵快速幂得f(n)即可

构造矩阵如下:

n^3是肯定得变换的,用二项式展开来一点点配吧

我们会发现中间6*6的矩阵是个常数矩阵,则可以化为A=B^(N-2)*C(n-2次幂是因为我们求解是从N=3开始的),根据矩阵快速幂算出B^(N-2)次幂即可以了

矩阵快速幂的时间复杂度是logn

注意:我们中间构造的矩阵必须是一个方阵,矩阵快速幂的难点就在于构建中间的方阵

比如矩阵A,B,C,B是系数矩阵的话,A里的n要比c里的大1,并不是直接表示出来就可以了,左右两边的矩阵如果右边是X(n-1),左边就是Xn

方阵构建技巧可以看这篇博文:https://blog.csdn.net/u012061345/article/details/52224623

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=123456789;struct matrix{ll a[11][11]; //begin with 1int r,c;matrix(int n,int m):r(n),c(m){memset(a,0,sizeof(a));}ll* operator[](int x){return a[x];}friend matrix operator*(matrix A,matrix B){matrix C(A.r,B.c);for(int i=1;i<=A.r;i++)for(int j=1;j<=B.c;j++)for(int k=1;k<=A.c;k++){C[i][j]+=(A[i][k]*B[k][j])%mod;C[i][j]+=mod;C[i][j]%=mod;}return C;}
};
matrix qpow(matrix A,ll m)//方阵A的m次幂
{matrix ans(A.r,A.c);for(int i=1;i<=A.r;i++) ans.a[i][i]=1; //单位矩阵while(m){if(m&1)ans=ans*A;A=A*A;m>>=1;}return ans;
}int main()
{ll T,n;for(cin>>T;T--;){scanf("%lld",&n);matrix A(6,6);A[1][1]=1;A[1][2]=2;A[1][3]=1;A[1][4]=3;A[1][5]=3;A[1][6]=1;A[2][1]=1;A[3][3]=1;A[4][3]=1;A[4][4]=1;A[5][3]=1;A[5][4]=2;A[5][5]=1;A[6][3]=1;A[6][4]=3;A[6][5]=3;A[6][6]=1;matrix X2(6,1);X2[1][1]=2;X2[2][1]=1;X2[3][1]=1;X2[4][1]=2;X2[5][1]=4;X2[6][1]=8;matrix Xn=qpow(A,n-2)*X2;printf("%lld\n",Xn[1][1]);}
}

转载于:https://www.cnblogs.com/qingjiuling/p/10557768.html

广工十四届校赛 count 矩阵快速幂相关推荐

  1. [3.3训练赛]One-Dimensional(矩阵快速幂),Freda的迷宫(无向图强连通分量+并查集),一道防AK好题

    文章目录 T1:One-Dimensional title solution code T2:[NOIP模拟赛]Freda的迷宫 title solution code T3:[NOIP模拟赛]一道防 ...

  2. 蓝桥杯单片机第十四届省赛题目和程序答案

    目录 1.前言 2.题目 3.程序架构 3.1 display.c 3.2 ds1302.c 3.3 iic.c 3.4 onewire.c 3.5 main.c 主函数文件 3.6 环境配置 4. ...

  3. 第十四届校模拟赛第一期(一)

      "须知少时凌云志,自许人间第一流"    鄙人11月八号有幸参加学校校选拔赛,题型为5道填空题,5道编程题,总时间为4小时.奈何能力有限,只完成了5道填空和3道编程大题,现进行 ...

  4. 【蓝桥杯】第十四届模拟赛第一期及第二期填空汇总

    目录 1.A题(进制位数) 位运算符 第一期 问题描述 解析 第二期 解析 代码 2.B题(日期问题) 第一期 问题描述 解析 代码实现 执行结果 第二期 问题描述 解析 3.C题(数学问题) 第一期 ...

  5. 【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

  6. 蓝桥杯2023年第十四届省赛真题-冶炼金属

    题目描述 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X.这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X,当普 ...

  7. ZOJ2974 Just Pour the Water(5th 浙江省赛)矩阵快速幂

    问题链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2974 问题描述: Just Pour the Water Tim ...

  8. “字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1,2,3,4,5,7,8,9,10

    1001: hzy 和zsl 的生存挑战 Problem Description zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战: zsl 和hzy ...

  9. 2023年第十四届蓝桥杯javaB组 蜗牛解题思路(动态规划 O(n))

    E.蜗牛(时间限制: 1.0s 内存限制: 512.0MB) [问题描述] 这天,一只蜗牛来到了二维坐标系的原点. 在 x 轴上长有 n 根竹竿.它们平行于 y 轴,底部纵坐标为 0 ,横坐标分别 为 ...

最新文章

  1. Go 为什么这么“快”
  2. FIR滤波器设计(包括Verilog HDL设计以及MATLAB设计)
  3. 不是python中用于开发用户界面的第三方库-20个必不可少的Python库也是基本的第三方库...
  4. 关于添加图片到svg中,rails下使用js, 用parseFloat来调整force.on时的位置
  5. Java黑皮书课后题第5章:*5.18(使用循环语句打印4个图案)使用嵌套的循环语句,编写4个独立的程序打印下面的图案
  6. 软件测试与开发专业就业方向,学习软件测试后就业方向有哪些?
  7. c++并发编程之原子操作的实现原理
  8. http安全 Java_HTTP通信安全-身份验证 | 字痕随行
  9. Redis基础1(定义及基础)
  10. 大数据开发者必走的学习路线
  11. python max((1、2、3)*2)_Python functional.max_pool2d方法代码示例
  12. 数据库迁移登录名_如何将数据库的登录名迁移到其他服务器
  13. 常见的使用ICMP协议的命令
  14. 2021年中国中频等离子体激发市场趋势报告、技术动态创新及2027年市场预测
  15. The “data“ option should be a function that returns a per-instance value in component definitions.
  16. 使用plugins让打包更便捷
  17. Portainer中文汉化
  18. 计算机怎么合并单元格并保存内容,怎么合并单元格并保留所有数据
  19. mysql5.1不支持中文,MySQL_MySQL5.1的中文支持的一个改进, MySQL 5.1的中文支持的一个改 - phpStudy...
  20. 「系统介绍」简单介绍下PMS系统

热门文章

  1. java的编程规范_JAVA编程规范-OOP规范
  2. pytorch安装换源ubuntu_PyTorch入门之PyTorch的安装
  3. linux 神奇命令,Linux 命令神器:lsof 入门
  4. dhcp工具_自制的树莓派网络工具集
  5. linux3.10.53编译,根据官方文档在Linux下编译安装Apache
  6. OpenCV-Python实战(20)——OpenCV计算机视觉项目在Web端的部署
  7. python主要功能_Python主要功能
  8. scala中命名参数函数_Scala中的命名参数和默认参数值
  9. 深入了解微服务的优点与缺点
  10. Java基础篇:介绍嵌套类和内部类