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 ...
随机推荐
- SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】
注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...
- velocity模板技术生成word文档
本文介绍採用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容例如以下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项 ...
- Windows 7旗舰版搭建andriod 4.0开发环境记录
搭建Android环境步骤(仅供参考): 官方搭建步骤: http://developer.android.com/index.html 搭建环境之前需要下载下面几个文件包: 一.安装Java运行环境 ...
- [Angular 2] Import custom module
The application structure: in app.module.ts: import { NgModule} from "@angular/core"; impo ...
- Android APK方式换肤实现原理
现在很多APP都有换肤的功能,例如微博,QQ等应用.这些应用的换肤原理是什么? 在用微博的时候,不难发现,当你要换肤时,先下载并安装一个皮肤apk,然后选择这个皮肤,就可以了. 这种方式就是把皮肤打包 ...
- Ajax条用WebService 5星级
转:http://www.cnblogs.com/frozenzhang/p/ajax.html 随笔- 2 文章- 0 评论- 5 $.ajax()调用webservice 常规请求基本格式 [ ...
- 实例源码--Android手机狗(防盗)源码
下载源码 技术要点: 1. SharedPreferences数据保存 2. SIM卡状态监 听 3. 发短信.发邮 箱.获取通讯信息 4. 源码带详细的 中文注释 ...... 详细介绍: ...
- 关于删除linux多余内核
step 1: 查找当前正在使用的内核文件的版本号 #uname -r step 2: 列出所有的内核文件,使用rpm 或者 dpkg(基于linux系统) 命令 #rpm -q kernel 或者 ...
- Asp.Net 之 Web.config下Authorization节点
WebConfig Authorization 节点 授权的目的是确定是否应该授予某个标识对给定资源请求的访问权限类型.有两种基本方式来授予对给定资源的访问权限: [1] 文件授权 文件授权由 Fil ...
- Python学习笔记 第二课 循环
>>> movies=["The Holy Grail", 1975, "The Life of Brian", 1979, "Th ...