Count(广工14届竞赛)
题目链接: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届竞赛)的更多相关文章
- zyb的面试(广工14届比赛)
这道题目在上半年ZOJ模拟上年青岛赛区ACM题的时候就已经出现了.当时我不会写,本来想着赛后补题的最后因为懒惰又没补. 现在这道题又出现了.这是上天对我的惩罚啊!!! 所以这次铁了心也要补这题.然后我 ...
- Android反编译基础(apktoos)--广工图书馆APK
更多精彩内容 :http://www.chenchuangfeng.com QQ:375061590 ------------------------------------------------- ...
- 【HDU6216】 A Cubic number and A Cubic Number 和 广工的加强版
题目传送门_杭电版 题目传送门_广工版 广工版的是杭电版的加强版. 题意:判断一个质数是否是两个整数的立方差 ---- 数学题 题解: 根据立方差公式:\(a^3 - b^3 = (a - b)(a^ ...
- 广工十四届校赛 count 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6470 题意:求,直接矩阵快速幂得f(n)即可 构造矩阵如下: n^3是肯定得变换的,用二项式展开来一点 ...
- 2018湖南省第14届大学生计算机程序设计竞赛 D: 卖萌表情
Description 已知以下 4 种都是卖萌表情(空白的部分可以是任意字符.竖线是便于展示的分隔符,没有实际意义): ^ ^ | ^ | < | > v | v v | > | ...
- 2018湖南省第14届大学生计算机程序设计竞赛 C: 时间旅行
Description 假设 Bobo 位于时间轴(数轴)上 t0 点,他要使用时间机器回到区间 (0, h] 中. 当 Bobo 位于时间轴上 t 点,同时时间机器有 c 单位燃料时,他可以选择一个 ...
- 2018湖南省第14届大学生计算机程序设计竞赛 A字符画
Description 读入 w,请输出 2018 的字符画,两个数字之间有 w 个空格.具体格式请参考样例输出. 1 ≤ w ≤ 2018 Input 输入文件只包含 1 个整数 w. Output ...
- 广工赛-hdu6468构造十叉树
是个以前没见过的模板题.. 我用比较复杂度方式过掉了.. 构造一个十叉树(有点trie的味道)来存数字,然后字典序就是先序遍历的结果 #include<bits/stdc++.h> usi ...
- 广工赛-hdu6469-树链压缩/二分
比较复杂的一题.. 不管是二分答案还是直接做,都需要压缩树链 /* 给定n种怪物,每个怪物有属性a[i] 打死第i种怪物后,第i只怪物会分裂成a[i]个第i-1种怪 如果打死的是第1种,那么获得经验a ...
随机推荐
- 7:CSS Sprites的原理(图片整合技术)
7:CSS Sprites的原理(图片整合技术) 一.将导航背景图片,按钮背景图片等有规则的合并成一张背景图,即将多张图片合为一张整图,然后用background-position”来实现背景图片的定 ...
- WPF datagrid 获取行或单格为NULL 问题
datagrid 属性 EnableRowVirtualization 设置为 false 解决...不要问我为什么. 害死我了
- Winter-Camp欠债记录
待完成: 球相交体积模板博客 Day3B题计算几何 Splay和Treap学习 [寒假]整理算法&模板
- [No000012D]WPF(5/7)依赖属性
介绍 WPF带来了很多传统 Windows 应用程序没有的新特性和选择.我们已经讨论了一些 WPF 的特性,是时候更进一步介绍其他特性了.当你读完这个系列之前的文章,我希望你已经或多或少地了解了 WP ...
- [No0000B4].Net中String是引用类型还是值类型,答string是特殊的引用类型
using System; internal class Program { private static void Main() { //值类型 ; int b = a; a = ; Console ...
- tensoflow模型中提示:ValueError: Variable rnn/basic_rnn_cell/kernel already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? 解决办法
在利用tensorflow框架进行模型训练的时候,有时我们需要多次训练对结果求均值来得到一个均衡的评测结论.比如训练十次求平均值.但是tf的本质就是图,当变量第一次定义使用后,第二次再使用就是提示: ...
- 深度学习中将类别标签映射到one_hot向量
有时我们的样本标签,都是标记从0开始直至到类别的个数.在模型训练的时候,这些标签需要变成one_hot向量,这样才能够跟softmax出来的概率做互熵损失,计算loss. 那么,映射的方法如下: de ...
- CentOS-6.9安装配置JDK-7
CentOS-6.9安装配置JDK-7 安装说明 系统环境:centos-6.9安装方式:rpm安装 软件:jdk-7u79-linux-x64.rpm下载地址:http://download.ora ...
- Haproxy的三种保持客户端会话保持方式
2017-03-25 15:41:41 haproxy 三种保持客户端Seesion; 一.源地址hash(用户IP识别) haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类 ...
- OPTIMIZE TABLE linked list 表优化原理 链表数据结构 空间再利用
小结: 1.加快读写: 2.对于InnoDB表,在一定条件下,通过复制旧表重建: 3.实践中, 3.1.show processlist;查看线程,发现,认为堵塞读请求: 3.2.数据长度空间不变,索 ...