UVaLive 7361(矩阵快速幂)
题意:矩阵快速幂求斐波那契数列。
分析:
aaarticlea/png;base64,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" alt="" />
#include<cstdio>
#include<cstring>
#include<cctype>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<sstream>
#include<iterator>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<deque>
#include<queue>
#include<stack>
#include<list>
#define fin freopen("in.txt", "r", stdin)
#define fout freopen("out.txt", "w", stdout)
#define pr(x) cout << #x << " : " << x << " "
#define prln(x) cout << #x << " : " << x << endl
typedef long long ll;
typedef unsigned long long llu;
const int INT_INF = 0x3f3f3f3f;
const int INT_M_INF = 0x7f7f7f7f;
const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
const ll LL_M_INF = 0x7f7f7f7f7f7f7f7f;
const double pi = acos(-1.0);
const double EPS = 1e-;
const int dx[] = {, , -, };
const int dy[] = {-, , , };
const ll MOD = 1e9;
const int MAXN = + ;
const int MAXT = + ;
using namespace std;
struct Node
{
ll c[][];
Node()
{
memset(c, , sizeof c);
}
};
Node multi(Node &a, Node &b)
{
Node ans;
for(int i = ; i < ; ++i)
for(int j = ; j < ; ++j)
for(int k = ; k < ; ++k){
ans.c[i][j] += (a.c[i][k] * b.c[k][j]);
ans.c[i][j] %= MOD;
}
return ans;
}
ll q_pow(ll cur)
{
Node a;
a.c[][] = a.c[][] = a.c[][] = ;
Node ans;
ans.c[][] = ans.c[][] = ;
while(cur)
{
if(cur & )
{
ans = multi(ans, a);
}
a = multi(a, a);
cur /= ;
}
return ans.c[][];
}
int main()
{
int P;
scanf("%d", &P);
while(P--)
{
int K;
ll Y;
scanf("%d%lld", &K, &Y);
printf("%d %lld\n", K, q_pow(Y - ));
}
return ;
}
UVaLive 7361(矩阵快速幂)的更多相关文章
- UVaLive 7361 Immortal Porpoises (矩阵快速幂)
题意:求Fibonacci的第 n 项. 析:矩阵快速幂,如果不懂请看http://www.cnblogs.com/dwtfukgv/articles/5595078.html 是不是很好懂呢. 代码 ...
- UVaLive 3704 Cellular Automaton (循环矩阵 + 矩阵快速幂)
题意:一个细胞自动机包含 n 个格子,每个格子取值是 0 ~ m-1,给定距离,则每次操作后每个格子的值将变成到它距离不超过 d 的所有格子在操作之前的值之和取模 m 后的值,其中 i 和 j 的距离 ...
- UVALive 3704 细胞自动机 矩阵快速幂
是时候要做做数学类的题目了 这属于比较简单的矩阵快速幂了,因为有个已知的矩阵循环的结论,所以为了节约时空,只需要保留一行即可,这个稍微有点难写,也不是难写,主要是注意细节.其他的矩阵快速幂一下即可 # ...
- LA 3704细胞自动机——循环矩阵&&矩阵快速幂
题目 一个细胞自动机包含 $n$ 个格子,每个格子的取值为 $0 \sim m-1$.给定距离 $d$,则每次操作是将每个格子的值变为到它的距离不超过 $d$ 的所有格子的在操作之前的值的和除以 $m ...
- 矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)
题目链接 题意: 思路: 直接拿别人的图,自己写太麻烦了~ 然后就可以用矩阵快速幂套模板求递推式啦~ 另外: 这题想不到或者不会矩阵快速幂,根本没法做,还是2013年长沙邀请赛水题,也是2008年Go ...
- 51nod 算法马拉松18 B 非010串 矩阵快速幂
非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串. 求长度为n的非010串的个数.(对1e9+7取模) ...
- 51nod 1113 矩阵快速幂
题目链接:51nod 1113 矩阵快速幂 模板题,学习下. #include<cstdio> #include<cmath> #include<cstring> ...
- 【66测试20161115】【树】【DP_LIS】【SPFA】【同余最短路】【递推】【矩阵快速幂】
还有3天,今天考试又崩了.状态还没有调整过来... 第一题:小L的二叉树 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣.所以,小L当时卡在了二叉树. ...
- HDU5950(矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5950 题意:f(n) = f(n-1) + 2*f(n-2) + n^4,f(1) = a , f(2 ...
随机推荐
- 第二周02:Fusion ICP逐帧融合
本周主要任务02:Fusion 使用ICP进行逐帧融合 任务时间: 2014年9月8日-2014年9月14日 任务完成情况: 已实现将各帧融合到统一的第一帧所定义的摄像机坐标系下,但是由于部分帧之间的 ...
- iOS开发UI-利用Quartz2D 实现基本绘图(画三角形、矩形、圆、圆弧)
1.画三角形 运行结果如下 1.1具体实现步骤 1.1.1首先新建一个project,然后自定义一个view 1.2代码 #import "htingShapeView.h" @ ...
- Xcode8中Swift3.0适配问题
写在前面 收到一些小伙伴的来信,觉得可能下边没有表达清楚,先把大家关心的要点在此进行总结,有兴趣的可以看看下边的研究过程,没兴趣的直接看这段即可. Xcode8支持Swift2.3和Swift3.0两 ...
- Windows下codeblocks的安装与配置
最近自己正好要使用codeblocks编写C++程序,安装好却发现无法编译,如果您也遇到相似问题,可以参考本文. 如果您已安装codeblocks,想转换成中文界面,直接参考Step 2. 如果您C程 ...
- 第2章 数字之魅——斐波那契(Fibonacci)数列
斐波那契(Fibonacci)数列 问题描述 递归算法: package chapter2shuzizhimei.fibonacci; /** * Fibonacci数列递归求解 * @author ...
- Apache Shiro Architecture--官方文档
原文地址:http://shiro.apache.org/architecture.html Apache Shiro's design goals are to simplify applicati ...
- tomcat服务器 去掉端口8080 以及项目名 直接使用IP地址访问
>>> 先在web.xml中设置默认页面 <welcome-file-list> <welcome-file>/login.jsp</welcom ...
- 安装openshift客户端工具 rhc
安装ruby: $ sudo apt-get install ruby-full 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会安装下列额外的软件包: ...
- IIS错误500.21
操作系统:win7,有.net2.0,.net4.0 网站4.5, 错误原因:IIS未注册4.0框架. 解决办法: %windir%\Microsoft.NET\Framework\v4.0.3031 ...
- html 动态添加TABLE的行。
<script type="text/javascript"> var pos =4;//默认位置为4,根据自己需要,也可以通过鼠标事件获取当前行数. function ...