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

这道题目题解就扔了个矩阵快速幂啥都没写。。。。。这题解是太看得懂我这个弱鸡了。

既然是矩阵快速幂那么先扔个矩阵快速幂的学习链接:https://www.luogu.org/problemnew/show/P3390

废话不说上图。这个是斐波那契数列的矩阵的推导。

既然有这种骚东西,肯定有其他的递推式。然后就是我们JX大佬给的神图,我研究半天才懂

有了这些工具,那么这道题目就可以解决了,继续上我的推导过程。

很明显,这道题n从3开始,那么快速幂矩阵时的次方应该是n-2。好了,重点都讲完了,上代码。。。

#include <bits/stdc++.h>
using namespace std;
#define re register
#define ll long long
const int mod=;
void read(int &a)
{
a=;
int d=;
char ch;
while(ch=getchar(),ch>''||ch<'')
if(ch=='-')
d=-;
a=ch-'';
while(ch=getchar(),ch>=''&&ch<='')
a=a*+ch-'';
a*=d;
}
void write(int x)
{
if(x<)
putchar(),x=-x;
if(x>)
write(x/);
putchar(x%+'');
}
int n=;
struct note
{
int a[][];
};
note ans,a,b;
void init()
{
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
a.a[][]=;
b.a[][]=;
b.a[][]=;
b.a[][]=;
b.a[][]=;
b.a[][]=;
b.a[][]=;
}
note Mat(note x,note y)
{
note c;
for(re int i=;i<=;i++)
for(re int j=;j<=;j++)
c.a[i][j]=;
for(re int i=;i<=;i++)
for(re int j=;j<=;j++)
for(re int k=;k<=;k++)
c.a[i][j]=(c.a[i][j]+1ll*x.a[i][k]*y.a[k][j]%mod)%mod;
return c;
}
int main()
{
int T;
read(T);
while(T--)
{
ll n;
scanf("%lld",&n);
n-=;
init();
for(re int i=;i<=;i++)
for(re int j=;j<=;j++)
ans.a[i][j]=;
for(re int i=;i<=;i++)
ans.a[i][i]=;
while(n)
{
if(n&)
ans=Mat(ans,a);
a=Mat(a,a);
n>>=;
}
int sum=;
for(re int i=;i<=;i++)
sum=(sum+1ll*ans.a[][i]*b.a[][i]%mod)%mod;
write(sum);
putchar('\n');
}
return ;
}

代码应该很好懂,我就不注释了 Orz

Count(广工14届竞赛)的更多相关文章

  1. zyb的面试(广工14届比赛)

    这道题目在上半年ZOJ模拟上年青岛赛区ACM题的时候就已经出现了.当时我不会写,本来想着赛后补题的最后因为懒惰又没补. 现在这道题又出现了.这是上天对我的惩罚啊!!! 所以这次铁了心也要补这题.然后我 ...

  2. Android反编译基础(apktoos)--广工图书馆APK

    更多精彩内容 :http://www.chenchuangfeng.com QQ:375061590 ------------------------------------------------- ...

  3. 【HDU6216】 A Cubic number and A Cubic Number 和 广工的加强版

    题目传送门_杭电版 题目传送门_广工版 广工版的是杭电版的加强版. 题意:判断一个质数是否是两个整数的立方差 ---- 数学题 题解: 根据立方差公式:\(a^3 - b^3 = (a - b)(a^ ...

  4. 广工十四届校赛 count 矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6470 题意:求,直接矩阵快速幂得f(n)即可 构造矩阵如下: n^3是肯定得变换的,用二项式展开来一点 ...

  5. 2018湖南省第14届大学生计算机程序设计竞赛 D: 卖萌表情

    Description 已知以下 4 种都是卖萌表情(空白的部分可以是任意字符.竖线是便于展示的分隔符,没有实际意义): ^ ^ | ^ | < | > v | v v | > | ...

  6. 2018湖南省第14届大学生计算机程序设计竞赛 C: 时间旅行

    Description 假设 Bobo 位于时间轴(数轴)上 t0 点,他要使用时间机器回到区间 (0, h] 中. 当 Bobo 位于时间轴上 t 点,同时时间机器有 c 单位燃料时,他可以选择一个 ...

  7. 2018湖南省第14届大学生计算机程序设计竞赛 A字符画

    Description 读入 w,请输出 2018 的字符画,两个数字之间有 w 个空格.具体格式请参考样例输出. 1 ≤ w ≤ 2018 Input 输入文件只包含 1 个整数 w. Output ...

  8. 广工赛-hdu6468构造十叉树

    是个以前没见过的模板题.. 我用比较复杂度方式过掉了.. 构造一个十叉树(有点trie的味道)来存数字,然后字典序就是先序遍历的结果 #include<bits/stdc++.h> usi ...

  9. 广工赛-hdu6469-树链压缩/二分

    比较复杂的一题.. 不管是二分答案还是直接做,都需要压缩树链 /* 给定n种怪物,每个怪物有属性a[i] 打死第i种怪物后,第i只怪物会分裂成a[i]个第i-1种怪 如果打死的是第1种,那么获得经验a ...

随机推荐

  1. [实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像

    写在前面 最近又开始忙了,工期紧比较赶,另外明天又要去驾校,只能一个功能一个功能的添加了,也许每次完成的功能确实不算什么,等将功能都实现了,然后在找一个好点的ui对前端重构一下. 系列文章 [EF]v ...

  2. python 给字符串加颜色

    msg = '\033[41;1m字符串内容\033[0m' print(msg) # \033[41;1m起始位置 改变41数值就是改变其他颜色,.033[0m 结束位置

  3. 如何移植freertos

    要素: 1.两个主要的文件夹移动 2.freertos_config 复制,决定了系统时钟启动位置 3. 启动汇编复制替换 4.it中断管理文件 的相关三个中断注释掉 5.复制delay文件,主要是s ...

  4. Codeforces 660C - Hard Process - [二分+DP]

    题目链接:http://codeforces.com/problemset/problem/660/C 题意: 给你一个长度为 $n$ 的 $01$ 串 $a$,记 $f(a)$ 表示其中最长的一段连 ...

  5. [No0000151]菜鸟理解.NET Framework中的CLI,CLS,CTS,CLR,FCL,BCL

    最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framewor ...

  6. [No0000E6]C# 判断与循环

    判断语句 语句 描述 if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成. if...else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 ...

  7. 深度学习中的batch的大小对学习效果的影响

    Batch_size参数的作用:决定了下降的方向 极端一: batch_size为全数据集(Full Batch Learning): 好处: 1.由全数据集确定的方向能够更好地代表样本总体,从而更准 ...

  8. 看数据库的文件大小 MySQL Binlog日志的生成和清理规则

    小结: 1.避免并行大大事务对磁盘.内存的消耗: MySQL数据文件导致实例空间满的解决办法_空间/内存_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/kno ...

  9. c# List获取重复项

    List<Test> t = new List<Test>() { ,name="车辆"}, ,name="车辆"}, ,name=&q ...

  10. xcode工程编译错误:"An instance 0xca90200 of class UITableView was deallocated while key value observers were still registered with it"

    An instance 0xca90200 of class UITableView was deallocated while key value observers were still regi ...